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

时间:2013-06-19 11:36:05

标签: java

我在java中获取文本

  

此请求是从资助机会中收集所有相关的eForms并将它们打包到一个容器(zip)文件中。\ r \ n(此处为空格)此文件将用于在目标系统上导入eForms。程序办公室界面。

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

  

此请求是从资助机会中收集所有相关的eForms并将它们打包到一个容器(zip)文件中.--- next line ----   ------段落分隔符-----------该文件将用于在程序办公室界面中的目标系统上导入eForms。

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

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

但是在\r\n之后有一个段落分隔符,它在Java中作为空格,因此上面的函数无法转换它,它在浏览器中呈现如下:

  

此请求是从资助机会中收集所有相关的eForms并将它们打包成一个容器(zip)文件。
  该文件将用于在程序办公室界面中的目标系统上导入eForms。

我应该使用什么才能在网络浏览器中显示段落?

2 个答案:

答案 0 :(得分:0)

问题不在于正则表达式。问题是您希望在不应该使用<br>的地方使用<p>。您自己说要显示段落,因此您应该使用</p><p>元素( p ,如_p_aragraph中所示)。

而不是使用<p>替换换行符,在开头添加</p>,在文本末尾添加<p>,然后使用CSS调整notLogDetail.setBody('<p>' + notLog.getBody().replaceAll("(\r\n|\n|\u0085|\u2028|\u2029)", "</p><p>") + '</p>' ); 的边距{1}}元素。

{{1}}

答案 1 :(得分:0)

您可以尝试关注replaceAll调用:

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