2012-02-18 9 views
3

基本的に、空の段落をすべてテキストから削除する必要があります。以下はうまくいかないようです...Java Regex空の段落を削除する

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

どういう考えがありますか?

文字列に何らかの形で非ASCII文字が入っていました。私はそれらを削除しましたが、これはうまくいきました。 LOLZ

+0

「動作しません」と定義します。それは私にとってうまくいく。 –

+0

それはちょうどうまくいくはずです...あなたはそれが動作していないと言うとき - 結果は何ですか?少なくともすべての段落を削除することを確認するために '

[^ <]*

'を試すことができますか? –

+0

何とか段落タグの間に非アスキー文字があると思います。 –

答えて

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を解析する際に信じられないほど悪いという問題を抱えています。一般に、試してみると、頭が痛いです。