2

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

text = text.replace("\r\n", "<br />");
text = text.replace("\n", "<br />");

但问题是如果有很多连续的 "\n" 我会有很多
s 或空格,我只想把它们都变成一个。那么你的建议是什么?有没有一种快速替换方法可以使所有连续的\n\n\n\n\n\n\n只有一个只有一个br?

4

3 回答 3

6

您可以使用量词+来表示 1 或更多.. 另外,*表示 0 或更多..

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

text = text.replaceAll("[\n\r]+", "<br />");
于 2012-10-05T17:01:53.260 回答
2

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

text.replaceAll("(\r\n)+", "<br />")
    .replaceAll("\n+", "<br />");
于 2012-10-05T17:04:48.417 回答
1

你有没有试过这个:

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

表示前一场比赛的+“一个或多个”。

于 2012-10-05T17:02:18.757 回答