[英]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.