这已经被问了好几次几种语言,但我不能得到它的工作。我有一根这样的弦
String str = "This is a string.\nThis is a long string.";
我尝试使用以下命令将\n
替换为<br />
str = str.replaceAll("(\r\n|\n)", "<br />");
但是\n
没有被替换。我试着用这个RegEx Tool来验证,我看到了同样的结果。输入字符串不匹配"(\r\n|\n)"
。我做错了什么?
这已经被问了好几次几种语言,但我不能得到它的工作。我有一根这样的弦
String str = "This is a string.\nThis is a long string.";
我尝试使用以下命令将\n
替换为<br />
str = str.replaceAll("(\r\n|\n)", "<br />");
但是\n
没有被替换。我试着用这个RegEx Tool来验证,我看到了同样的结果。输入字符串不匹配"(\r\n|\n)"
。我做错了什么?
7条答案
按热度按时间flmtquvp1#
对我很有效。
结果:
你的问题在别的地方。
z6psavjg2#
对我来说,这起作用了:
提示:使用regex tester进行快速测试,而无需在环境中进行编译
wfypjpf43#
一个更强大的版本,你正在尝试:
kgsdhlau4#
因为我的帐户是新的,我不能投赞成票尼诺范胡夫的答案。如果您的字符串来自基于Windows的源,例如基于aspx的服务器,则此解决方案确实有效:
似乎是一个奇怪的字符集问题,因为双反斜杠被解释为单斜杠转义字符。因此需要上面的四个斜杠。
同样,在大多数情况下,
"(\\r\\n|\\n)"
应该可以工作,但如果您的字符串来自基于Windows的源代码,请尝试上述方法。只是一个fyi尝试一切,以纠正问题,我有取代那些行结束。最初认为从
Windows-1252
到UTF-8
的转换失败。但那也没用。这个解决方案最终成功了。:)mwyxok5s5#
对我很有效。Java代码完全按照您编写的那样工作。在测试仪中,输入字符串应为:
...用真实的的换行您不能用途:
...因为它将
\n
视为文字序列 * 反斜杠'n'*。ffvjumwh6#
这应该可以,但不要杀了你自己试图找出它。只需使用2个通道。
免责声明:这不是很有效。
beq87vna7#
这个应该能用你需要加两个斜线
在此Reference中,有一个示例显示
我在我的许多项目中使用过两个斜杠,它似乎工作得很好!