只是为了完整性而添加这个,因为2反斜杠是真实的。 请参考以下SO问题中的@dasblinkenlight答案(谈论\t,但它也适用于\n): java, regular expression, need to escape backslash in regex “对于转义序列有两种解释:首先由Java编译器执行,然后由正则表达式引擎执行。当Java编译器看到两个斜杠时,它用单个斜杠替换它们。当斜杠后面有t时,Java用制表符替换它;当双斜杠后面有一个t时,Java会不去管它。但是,因为两个斜杠被一个斜杠代替了,所以regexp引擎会看到\t,并将其解释为制表符。
8条答案
按热度按时间4szc88ey1#
不要使用正则表达式!,只需要一个纯文本匹配就可以替换
"\n"
。使用
replace()
将一个字符串替换为另一个字符串:请注意,
replace()
仍然替换 all 的出现,replaceAll()
也是如此--不同之处在于replaceAll()
使用正则表达式进行搜索。i34xakig2#
使用下面的正则表达式:
UNIX和Windows操作系统只有两个换行符。
jhdbpxl93#
由于Java 8正则表达式引擎支持
\R
,它表示任何行分隔符(更多信息:https://stackoverflow.com/a/31060125/1393766)。因此,如果您可以访问Java 8或更高版本,则可以使用
e1xvtsh34#
不需要2
backslashes
。输出=
hello --linebreak-- world
7qhs6swi5#
只是为了完整性而添加这个,因为2反斜杠是真实的。
请参考以下SO问题中的@dasblinkenlight答案(谈论\t,但它也适用于\n):
java, regular expression, need to escape backslash in regex
“对于转义序列有两种解释:首先由Java编译器执行,然后由正则表达式引擎执行。当Java编译器看到两个斜杠时,它用单个斜杠替换它们。当斜杠后面有t时,Java用制表符替换它;当双斜杠后面有一个t时,Java会不去管它。但是,因为两个斜杠被一个斜杠代替了,所以regexp引擎会看到\t,并将其解释为制表符。
5lwkijsr6#
看起来不错。你不会想要两个反斜线的。
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum
nr9pn0ug7#
对于新行,存在一个属性
在这里,作为你的例子,
hivapdat8#
在我的例子中,我想用文字'\n'替换,所以我用另一个
\
转义了\
,如下所示