请教一个正则写法 String content = "<image src='a.jpg' alt=\"测试\">测试</image>测试用例";如果要用就content.replaceAll来替换,成"<image src='a.jpg' alt=\"#\">#</image>测试用例";正则该怎么写啊,我是要把image标签内所有关键字“测试”都替换成# 。不在image标签内的“测试”不替换。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class Test60021{ public static void main(String []args){ String content = "<image src='a.jpg' alt=\"测试\">测试</image>测试用例"; String res=content.replaceAll(">测试<", ">#<"); System.out.println(res); }} import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { String content = "测试<a href=\"test\">测试</a>测试<image src='a.jpg' alt=\"测试\">测试</image>测试用例"; String regex = "<(?i:image).*?</(?i:image)>"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(content); StringBuffer sb = new StringBuffer(); while(m.find()) { m.appendReplacement(sb, m.group().replace("测试", "#")); } m.appendTail(sb); System.out.println(sb.toString()); }} 一次性不太好弄.!提供你一种解决方案String content = "<image src='a.jpg' alt=\"测试\">测试</image>测试用例";String regex = "</image>";String[] arr = content.split(regex);String res = arr[0].replaceAll("测试", "#") + regex + arr[1];可以得到你想要的.!因为考虑到你img标签后面不知道有多少个测试用例,所以一时间只想出了这个解决方案.! 呵呵,再来一个public class Test { public static void main(String[] args) { String content = "测试<a href=\"test\">测试</a>测试" + "<image src='a.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>" + "测试用例\n" + "测试<a href=\"test\">测试</a>测试" + "<image src='a.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>测试\n" + "abc测试<image src='测试.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>用例"; String regex = "(?:(?<=<(?i:image))|(?<!\\A)\\G)(.*?)测试(?=.*?</(?i:image)>)"; System.out.println(content.replaceAll(regex, "$1#")); }} 火龙果,大哥最好能给我解释一下String regex = "<(?i:image).*?</(?i:image)>"; 这个正则含义哈,我看着不太懂 (?i:image) 表示不区分大小写匹配 image,如果你能保证全部是小写的话,可以把 (?i:) 去掉 重大发现一个jdk的大bug!高人速来! 汉字怎么截取,一半摄取,满2就取 email 如何把2个数组(大小不同 类型相同)拷贝到一个数组中 JDBC 链接问题 一个关于applet的题目,是scjp的,帮忙看看。谢谢 一个关于getGraphics()的问题 急! 编程语言那种是比较新的啊?有什么特色啊? 救人一命,胜造七级浮屠,小弟是新人 where can download emulator(POSE)'s ROMs. Free is better 文件内容某字符串的操作 java中有没有类似Rectangle的构造圆的类呢?
public class Test60021{
public static void main(String []args){
String content = "<image src='a.jpg' alt=\"测试\">测试</image>测试用例";
String res=content.replaceAll(">测试<", ">#<");
System.out.println(res);
}
}
import java.util.regex.Pattern;public class Test { public static void main(String[] args) {
String content = "测试<a href=\"test\">测试</a>测试<image src='a.jpg' alt=\"测试\">测试</image>测试用例";
String regex = "<(?i:image).*?</(?i:image)>";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(content);
StringBuffer sb = new StringBuffer();
while(m.find()) {
m.appendReplacement(sb, m.group().replace("测试", "#"));
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}
提供你一种解决方案
String content = "<image src='a.jpg' alt=\"测试\">测试</image>测试用例";
String regex = "</image>";
String[] arr = content.split(regex);
String res = arr[0].replaceAll("测试", "#") + regex + arr[1];
可以得到你想要的.!因为考虑到你img标签后面不知道有多少个测试用例,所以一时间只想出了这个解决方案.!
String content = "测试<a href=\"test\">测试</a>测试" +
"<image src='a.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>" +
"测试用例\n" +
"测试<a href=\"test\">测试</a>测试" +
"<image src='a.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>测试\n" +
"abc测试<image src='测试.jpg' alt=\"aa测试aa测试bb测试\">测试aa测试bb测试</image>用例";
String regex = "(?:(?<=<(?i:image))|(?<!\\A)\\G)(.*?)测试(?=.*?</(?i:image)>)";
System.out.println(content.replaceAll(regex, "$1#"));
}
}