关于Jakarta-ORO正则替换的问题

07-12-14 ppt2000
String rc(String source, String id, String content) {

StringBuffer sb = new StringBuffer();

content = content.replaceAll("\\/", "\\\\/");

String kkk = "s/(<\\w+\\s+.*?id=\"" + id

+ "\".*?>).*?(<\\/\\w+>)/$1" + content + "$2/gsi";

Perl5Util putil = new Perl5Util();

putil.substitute(sb, kkk, source);

return sb.toString();

}

功能就是设置指定id的html标签的innerHTML。

若使用rc("aaa", "userage", "8");调用。

则正则为s/(<\w+\s+.*?id="".*?>).*?(<\/\w+>)/$18$2/gsi

用于替换的数字8,与$1组成了$18,导致错误。如何解决?

猜你喜欢