繁体   English   中英

正则表达式帮助-清理空白-Java

[英]Regex help — cleaning up whitespace — Java

我正在尝试以合理的方式查看HTML文件的文本。 在删除所有标记并仅保留可见文本之后,我获得了一个类似于以下内容的字符串:

\n\n\n\n \n\n\n \n\n \n Title here \n\n\n \n\n \n\n Menu Item 1 \n\n \n\n Menu Item 2 \n\n\n \n\n you get the       point.

我想使用String.replaceAll(String regex, String regex)"\\n\\n"替换包含两次以上\\n所有空白子字符串。

有任何想法吗?

**编辑:**

抱歉,缺乏精确度。 我想将以上文本更改为:

\n\nTitle here\n\nMenu Item 1\n\nMenu Item 2\n\nyou get the       point.

我希望任何仅包含空格且包含两个以上换行符的子字符串都可以由"\\n\\n"替换。

str.replaceAll("\\s*\n\\s*\n\\s*\n\\s*", "\n\n")

这将替换任何包含2 \\n以上\\n空白子字符串,并将其替换为\\n\\n

我经常使用的Java regex参考位于此处 它将帮助您将来构建正则表达式。

另外一个选项:

  str.replaceAll("(?m)\\s*$", "\n").replaceAll("\n{3,}", "\n\n");

这效率较低(两次替换),但对我来说却干净得多-易于理解和修改。 第一次替换在许多情况下很有用(并且可能在您之前的清洁工作中),它可以确保每行都没有尾随空格,并且具有普通的\\n终止符。 第二个明确表达了您的目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM