Java 替换所有连续的\r\n或\n“;s与单个<;br>;

Java 替换所有连续的\r\n或\n“;s与单个<;br>;,java,html,regex,string,Java,Html,Regex,String,目前,我仅使用以下两种替换显示从DB获得的消息: text = text.replace("\r\n", "<br />"); text = text.replace("\n", "<br />"); text=text.replace(“\r\n”和“”); text=text。替换(“\n”和“”); 但问题是,如果有许多连续的“\n”我将有许多或空白,我只想将它们全部设置为一个。那么你的建议是什么?是否有快速替换方法使所有连续的\n\n\n\n\n\n\n仅一个

目前,我仅使用以下两种替换显示从DB获得的消息:

text = text.replace("\r\n", "<br />");
text = text.replace("\n", "<br />");
text=text.replace(“\r\n”和“
”); text=text。替换(“\n”和“
”);

但问题是,如果有许多连续的“\n”我将有许多
或空白,我只想将它们全部设置为一个。那么你的建议是什么?是否有快速替换方法使所有连续的\n\n\n\n\n\n\n仅一个br?

您可以使用量词
+
表示一个或多个。。 另外,
*
表示0或更多

text = text.replaceAll("\n+", "<br />");

text = text.replaceAll("[\n\r]+", "<br />");
text=text.replaceAll(“\n+”,“
”); text=text.replaceAll(“[\n\r]+”,“
”);
您是否尝试过以下方法:

text = text.replace("(\r\n)+", "<br />");
text = text.replace("\n+", "<br />");
text=text.replace(“(\r\n)+”,“
”; text=text。替换(“\n+”,“
”);

+
表示前面匹配的“一个或多个”

如果您有多个
\r\n
\n
以及介于两者之间的其他内容,您也可以使用

text.replaceAll("(\r\n)+", "<br />")
    .replaceAll("\n+", "<br />");
text.replaceAll(“(\r\n)+”,“
”) .replaceAll(“\n+”,“
”);
谢谢,如果是\r\n或\n,则为text=text。替换(“\n+\n\r+”,“
;”@NullUserException。。为什么?哪一个是第一个还是第二个???@RohitJain第二个,但你已经修复了它。@NullUserException。。现在好多了。。我使用字符类表示
\n
\r
replace
不接受正则表达式,
replaceAll
接受正则表达式。