用换行符替换文本

时间:2016-12-22 15:55:19

标签: java regex

我希望"A\nC".replaceAll("\\n", "B").replaceAll("B", "\\n")返回"A\nC",但它会给我"AnC"

起初我认为在替换中可能无法识别正则表达式转义符,但"ABC".replaceAll("B", "\\\\")确实生成"A\\C"(打印为 A \ C )。

你能帮我理解为什么替换不起作用吗?

我的目标是用换行符替换给定的模式(&#34; \ n&#34;)而不写.replaceAll("...", "\n")(替换字符串将从外部系统提供,不能包含换行符)。< / p>

(我试着四处寻找,但发现有很多关于用其他东西替换换行的问题,而没有用换行替换某些内容。)

2 个答案:

答案 0 :(得分:1)

您应该使用“\ n”而不是“\\ n”。 “\\ n”将编译为“\ n”,但不会编译为换行符。

答案 1 :(得分:1)

我不知道为什么你试图逃避\ n,当它正是你正在寻找的时候。这是换行符char,使用它作为普通char,不要被反斜杠打动。

"A\nC".replaceAll("\n", "B").replaceAll("B", "\n") ==> "A\nC";