我想在我的xml文件中将&
替换为&
。Java中的CDATA标记中的模式和匹配器
这里是我的代码:
//On match sur tous les <!CDATA[ ... ]>
Pattern p = Pattern.compile("<!\\[CDATA\\[((&)|[^\\]]|\\][^\\]]|\\]\\][^>])*\\]\\]>");
Matcher m = p.matcher(l_retour.toString());
String temp2 ="";
temp2 = l_retour.toString();
while(m.find()){
//Si il y a un '&'
if(m.group(2) != null){
//On remaplace les & remplacés précédement par un '&' simple car on se trouve dans une balise <!CDATA[]>
temp2 = temp2.replaceFirst(Pattern.quote(m.group()),m.group().replaceAll("&", "&"));
}
}
有正在执行的错误:
04 26 17:02:48,733 FATAL ExporteXml: Illegal group reference
04 26 17:02:48,733 FATAL ExporteXml: java.util.regex.Matcher.appendReplacement(Matcher.java:808)
04 26 17:02:48,733 FATAL ExporteXml: java.util.regex.Matcher.replaceFirst(Matcher.java:955)
04 26 17:02:48,733 FATAL ExporteXml: java.lang.String.replaceFirst(String.java:2119)
我想这是我的正则表达式,但Y未找到解决方案.. 感谢提前通过您的回答
吴丹你的回答。我不能这样做,因为我只是想在CDATA标记中进行替换。 ''[CDATA [这是我的文本替换]]>' – MelodyBibi
@Vasan funnily但'replace()'在内部使用'replaceAll()';) – Thomas