簡體   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