2012-02-18 85 views
3

基本上我需要從文本中刪除所有的空段落。以下似乎並沒有工作...Java正則表達式刪除空的段落

String postLevel = content.replaceAll("<p>\\s*</p>", ""); 

任何想法爲什麼?

非ascii字符以某種方式進入字符串.....我刪除了它們,這工作。 LOLZ

+0

定義「不起作用」。這對我來說很好。 – 2012-02-18 05:14:59

+0

這應該工作得很好......當你說它似乎不工作 - 結果是什麼?你可以試試'

[^ <]*

'確認至少刪除所有段落的工作? – 2012-02-18 05:15:36

+0

我想也許在某段落標籤之間有非ascii字符.. – 2012-02-18 05:17:31

回答

2

我會嘗試這個表達式來代替:

<p>\\s*</p>|<p/> 

這將採取<p></p><p/>空段落護理以及。

0
String s = "<p> </p>"; 
s = s.replaceAll("<p>\\s+</p>",""); 
System.out.println("Result: " + s); 

輸出:

結果:

我懷疑你的問題是,是你的輸入長得不算什麼樣子。你也會遇到這樣的問題,即正則表達式在解析HTML時非常糟糕,而且它通常是一個難以置信的嘗試。