jdk1.4的正则表达式可以用来替换字符串里的部分内容吗? 是some text这些文本换成name1? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我刚看了一下正则。随便写的。大家不要笑我啊。import java.util.regex.*;import java.lang.*;public class Test { public static String getName(String group) { Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\""); Pattern p2 = Pattern.compile("\"\\s*-->"); Matcher m1 = p1.matcher(group); Matcher m2 = p2.matcher(group); boolean b1 = m1.find(); int start = m1.end(); boolean b2 = m2.find(); int end = m2.start(); return group.substring(start, end); } public static void main(String[] args) { StringBuffer sb = new StringBuffer(); String a = " aaa <!-- Area1Begins name=\"name1\" -->\r\nsome text\r\n<!-- Area1Ends -->"; Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\".*\"\\s*-->"); Pattern p2 = Pattern.compile("<!--\\s*Area1Ends\\s*-->"); //Pattern p = Pattern.compile("<>"); Matcher m1 = p1.matcher(a); Matcher m2 = p2.matcher(a); System.out.println("Before Change"); System.out.println(a); boolean b1 = m1.find(); String g1 = m1.group(); String name = getName(g1); int lastend = m1.start(); String lastString = a.substring(0, lastend); int start = m1.end(); boolean b2 = m2.find(); String g2 = m2.group(); int end = m2.start(); System.out.println(); System.out.println("after Change"); sb.append(lastString); sb.append(g1); sb.append("\r\n"); sb.append(name); sb.append("\r\n"); sb.append(g2); System.out.println(sb); }} bjzhanghao (八进制) 你问的是这个意思吗? 谢谢你scbb,我要的基本就是这个功能。可惜那天急着走没看到,周末我自己写了一下,跟你的作用是一样的,分当然要给你啦:)private String createThemeBlocks(String tmp, Article article) { Pattern p = Pattern.compile("(<!--\\s*TemplateBeginEditable\\s+name=\"([^>]+)\"\\s*-->\\s*<!--\\s*TemplateEndEditable\\s*-->)"); Matcher m = p.matcher(tmp); StringBuffer sb = new StringBuffer(); boolean result = m.find(); while (result) { String columnName = m.group(2); m.appendReplacement(sb, article.getContent()); result = m.find(); } m.appendTail(sb); return sb.toString();} xwork2 官方下载的包为什么还出错? java导入Access数据库问题 final修饰的变量可以被改变了?高手来看看 面试题 Date类型时间的运算问题。 如何把字符串"1.2.3.4.5.6."中的每一个数字分别提取出来?用for语句 关于RMI的问题,向大家请教!!!!!!!!!!!!!! 如何利用Applet或者其它的java技术包装一个图形化的界面使其能够在web页面上显示? 怎样实现这种效果,马上给分! 如何把指定的文件名显示在SaveDiolog的fileName栏中? 如何从pem格式的私钥文件中读取私钥 求救:编一段程序实现dos命令tree功能
import java.lang.*;public class Test { public static String getName(String group) {
Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\"");
Pattern p2 = Pattern.compile("\"\\s*-->"); Matcher m1 = p1.matcher(group);
Matcher m2 = p2.matcher(group);
boolean b1 = m1.find();
int start = m1.end();
boolean b2 = m2.find();
int end = m2.start();
return group.substring(start, end);
}
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
String a = " aaa <!-- Area1Begins name=\"name1\" -->\r\nsome text\r\n<!-- Area1Ends -->";
Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\".*\"\\s*-->");
Pattern p2 = Pattern.compile("<!--\\s*Area1Ends\\s*-->");
//Pattern p = Pattern.compile("<>");
Matcher m1 = p1.matcher(a);
Matcher m2 = p2.matcher(a);
System.out.println("Before Change");
System.out.println(a);
boolean b1 = m1.find();
String g1 = m1.group();
String name = getName(g1);
int lastend = m1.start();
String lastString = a.substring(0, lastend);
int start = m1.end();
boolean b2 = m2.find();
String g2 = m2.group();
int end = m2.start();
System.out.println();
System.out.println("after Change");
sb.append(lastString);
sb.append(g1);
sb.append("\r\n");
sb.append(name);
sb.append("\r\n");
sb.append(g2);
System.out.println(sb);
}
}
Pattern p = Pattern.compile("(<!--\\s*TemplateBeginEditable\\s+name=\"([^>]+)\"\\s*-->\\s*<!--\\s*TemplateEndEditable\\s*-->)");
Matcher m = p.matcher(tmp);
StringBuffer sb = new StringBuffer();
boolean result = m.find();
while (result) {
String columnName = m.group(2);
m.appendReplacement(sb, article.getContent());
result = m.find();
}
m.appendTail(sb);
return sb.toString();
}