Java replaceAll 正则表达式从 XML 中读取

标签 java regex dom

所以我从一个 xml 文件中读取了 2 个字符串。 xml 字符串是:

<regex code="bla[. ]?(.*)\n" replacement="cpe_ip_learning_table:\\n$1\\n "/>

这会读入两个单独的变量以进行 replaceAll 调用。即:

str = str.replaceAll(code, replacement);

但是,即使我尝试用\n 代替\\n,它仍然不会插入换行符。

我正在使用 DOM DocumentBuilder 将 XML 文件读入两个单独的字符串。我也尝试过使用 Matcher.quoteReplacement 但无济于事。有没有人遇到过这个问题,他们是如何解决的?

最佳答案

我也经历过同样的行为,我发现修复它的唯一方法是对替换字符串本身执行 replaceAll:

rep = replacement.replaceAll("\\\\n", "\n")
str = str.replaceAll(code, rep);

由于某些奇怪的原因,DOMDocument 返回的字符串忽略换行符 (\n) 构造。

关于Java replaceAll 正则表达式从 XML 中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25756487/

相关文章:

java - 无法从 JPEG 元数据中检索标题的全文

java - 如何让 tomcat 同时托管 jenkins 和 sonar 而不会因 OutOfMemoryException 而崩溃?

java - 在 JOptionPane 中显示(字符串)数组的内容

java - 如何显示时间表

php - 如何使用正则表达式删除标签及其内容?

javascript - vars 的警报返回 "length"或 "item"

javascript - 连接模板文字时出现奇怪的错误

javascript - 用链接和 chop 值替换 anchor

java - 用于在 Java 中从右到左每 4 个字符用空格格式化二进制数的正则表达式

html - 是否可以通过编程方式获取网页的生成源?