【问题标题】:Replace all escape sequences with non-escaped equivalent strings in java用java中的非转义等效字符串替换所有转义序列
【发布时间】:2011-03-02 04:13:40
【问题描述】:

我有一个这样的字符串:

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

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

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

【问题讨论】:

    标签: java regex escaping


    【解决方案1】:

    使用 xml 解析器。

    【讨论】:

      【解决方案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]);
      }
      

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

      【讨论】:

      • 来自 Tomalak 的评论:'有些人在遇到正则表达式时,会想“我知道,我会使用我记得的引人入胜的引语”。现在他们没有在讨论中添加任何内容。'(我并不是在暗示你没有对你的答案做出贡献,我只是在评论这里的每个人已经看到现在至少发布了 1000000000 次的引用。 ..)
      • 我也是……前 999999999 次,就是这样。 :)
      • 天啊!我很久以前就知道了...感谢您提供简单的解决方案。
      • @Mark,没问题。乐于助人
      【解决方案3】:

      来自commons-langStringEscapeUtils.unescapeXml() 可能是您正在寻找的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 1970-01-01
        相关资源
        最近更新 更多