首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将\n和\r\n替换为java中的<br />

将\n和\r\n替换为java中的<br />
EN

Stack Overflow用户
提问于 2010-06-17 04:12:24
回答 5查看 150.6K关注 0票数 71

对于几种语言,这已经被问了好几次了,但我不能让它工作。我有一个这样的字符串

代码语言:javascript
复制
String str = "This is a string.\nThis is a long string.";

我正在尝试用<br />替换\n,使用

代码语言:javascript
复制
str = str.replaceAll("(\r\n|\n)", "<br />");

但是\n并没有被替换。我尝试使用这个RegEx Tool进行验证,我看到了同样的结果。输入字符串与"(\r\n|\n)"不匹配。我做错了什么?

EN

回答 5

Stack Overflow用户

发布于 2010-06-17 04:18:08

您正在尝试的内容的更健壮的版本:

代码语言:javascript
复制
str = str.replaceAll("(\r\n|\n\r|\r|\n)", "<br />");
票数 19
EN

Stack Overflow用户

发布于 2012-08-21 19:00:41

对我来说,这是可行的:

代码语言:javascript
复制
rawText.replaceAll("(\\\\r\\\\n|\\\\n)", "\\\n");

提示:使用regex tester进行快速测试,无需在您的环境中编译

票数 19
EN

Stack Overflow用户

发布于 2014-07-03 01:29:56

因为我的账号是新的,所以我不能支持尼诺·范胡夫的回答。如果字符串来自基于Windows的源,例如基于aspx的服务器,则此解决方案确实有效:

代码语言:javascript
复制
rawText.replaceAll("(\\\\r\\\\n|\\\\n)", "<br />");

这似乎是一个奇怪的字符集问题,因为双反斜杠被解释为单斜杠转义字符。因此需要使用上面的四个斜杠。

同样,在大多数情况下,"(\\r\\n|\\n)"应该可以工作,但如果您的字符串来自基于Windows源,请尝试上面的方法。

仅供参考,我尝试了所有方法来解决我在替换那些行尾时遇到的问题。最初的想法是从Windows-1252UTF-8的转换失败。但这也不起作用。这个解决方案就是最终成功的原因。:)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3056834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档