JAVA中的java.util.regex包有没有办法实现像ASP中的这种replace后向引用的功能呢?
虽然我知道java.util.regex.Pattern支持\1\2这样的后向引用,但不具备replace函数,而ASP就很方便:Dim regEx,Matches
Set regEx=New RegExp'建立一个新对像
regEx.Pattern=patrn'设置模板
regEx.IgnoreCase=true'搜索是否区分大小写的 true表是不区分 flase表示区分
regEx.Global=True'搜索是否应用于整个字符串
Matches=regEx.replace(strng,tagstr)'匹配并替代字符串
请问JAVA怎么写出上述代码最后一行的效果?
虽然我知道java.util.regex.Pattern支持\1\2这样的后向引用,但不具备replace函数,而ASP就很方便:Dim regEx,Matches
Set regEx=New RegExp'建立一个新对像
regEx.Pattern=patrn'设置模板
regEx.IgnoreCase=true'搜索是否区分大小写的 true表是不区分 flase表示区分
regEx.Global=True'搜索是否应用于整个字符串
Matches=regEx.replace(strng,tagstr)'匹配并替代字符串
请问JAVA怎么写出上述代码最后一行的效果?
Pattern p = Pattern.compile("\\d");
Matcher m=p.matcher("asdas23423asd23423");
String s = m.replaceAll("0"); //将所有数字替换成0
System.out.println(s);
Matcher matcher = p.matcher("[a]bbbb[/a]sfsdccc");System.out.println(matcher.replaceAll("\\<$1\\>$2\\<\\/$1\\>"));结果是:<a>bbb</a>dd<b>ccc</b>
可以了,呵呵……
为了防止误会,更正一下
Pattern p = Pattern.compile("\\[(\\w+)\\](\\w+)\\[\\/\\1\\]");
Matcher matcher = p.matcher(in);
System.out.println(in);
System.out.println(matcher.replaceAll("<$1>$2</$1>"));//[a]bbbb[/a]sfsdccc
//<a>bbb</a>sfsd<b>ccc</b>//应该没有问题了吧?