用java中的非转义等效字符串替换所有转义序列

时间:2010-06-10 13:17:27

标签: java regex escaping

我有一个这样的字符串:

<![CDATA[<ClinicalDocument>rest of CCD here</ClinicalDocument>]]>

我想用他们的非转义字符替换转义序列,最终得到:

<![CDATA[<ClinicalDocument>rest of CCD here</ClinicalDocument>]]>

3 个答案:

答案 0 :(得分:6)

来自StringEscapeUtils.unescapeXml()的{p> commons-lang可能是您正在寻找的东西。

答案 1 :(得分:2)

这是一个非正则表达式解决方案。

String original = "something";

String[] escapes = new String[]{"&lt;", "&gt;"}; // add more if you need
String[] replace = new String[]{"<", ">"}; // add more if you need

String new = original;

for (int i = 0; i < escapes.length; i++) {
    new = new.replaceAll(escapes[i], replace[i]);
}

有时简单的循环更容易阅读,理解和编码。

答案 2 :(得分:-1)

使用xml解析器。