Java 如何用正则表达式替换段落\r\n

Java 如何用正则表达式替换段落\r\n,java,Java,我得到一个java文本作为 此请求用于收集来自资助Opportunity的所有依赖eForms,并将其打包到单个容器zip文件中。\r\n此处此文件将用于在program office界面内的目标系统上导入eForms 此文本应在浏览器中呈现为: 此请求是收集来自资助Opportunity的所有依赖eForms,并将它们打包到单个容器zip文件中。--下一行-- ---段落分隔符------此文件将用于在program office界面内的目标系统上导入eForms 我使用以下函数将正则表达式转

我得到一个java文本作为

此请求用于收集来自资助Opportunity的所有依赖eForms,并将其打包到单个容器zip文件中。\r\n此处此文件将用于在program office界面内的目标系统上导入eForms

此文本应在浏览器中呈现为:

此请求是收集来自资助Opportunity的所有依赖eForms,并将它们打包到单个容器zip文件中。--下一行-- ---段落分隔符------此文件将用于在program office界面内的目标系统上导入eForms

我使用以下函数将正则表达式转换为html代码:

notLogDetail.setBody(notLog.getBody().replaceAll("(\r\n|\n|\u0085|\u2028|\u2029)", "<br>"));
但与后面一样\r\n Java中有段落分隔符,它是空白的,因此上面的函数无法转换它,它在浏览器中呈现如下:

此请求是收集来自资助Opportunity的所有依赖eForms,并将它们打包到单个容器zip文件中。 此文件将用于在program office界面内的目标系统上导入eForms


在web浏览器中显示段落应该使用什么?

问题不在于正则表达式。问题是你想在不应该的地方使用。你自己说你想显示段落,所以你应该使用元素p,如图中所示

将换行符替换为

,在文本的开头和结尾添加一个,然后使用CSS调整元素的边距

notLogDetail.setBody('<p>' + notLog.getBody().replaceAll("(\r\n|\n|\u0085|\u2028|\u2029)", "</p><p>") + '</p>' );

您可以尝试以下replaceAll呼叫:

notLog.getBody().replaceAll("(\r?\n|\u0085|\u2028|\u2029)\\s*", "<br>")

为什么不使用而不是使用段落而不是换行符呢?我不能使用,因为我在java代码中得到的文本是动态的,我只想在文本包含段落时显示段落。段落可以在文本中的任何位置。其次,我从java中的notLog.getBody获取的文本包含段落分隔符的空格。因此,我无法将其替换为任何字符。很抱歉,我不理解您的评论。正如你所描述的,一篇文章总是有一个段落。一个段落是一个词块,而不是它们之间的空隙。为什么不能只显示一个段落?我给出的文本只是一个示例。我将获得的文本可能包含段落,也可能不包含段落。notLog.getBody将提供完整的文本,如果存在段落,则我假设将其替换为浏览器可以理解并在web浏览器中呈现段落的字符,但不是将全文显示为段落。将全文显示为一个段落有什么不对?有了正确的样式表,没有人能看出区别。