所以我从一个 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/