2012-02-18 7 views
3

Fondamentalement, je dois supprimer tous les paragraphes vides d'un texte. Ce qui suit ne semble pas fonctionner ...Java Regex Suppression des paragraphes vides

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

Des idées pour savoir pourquoi?

Les caractères non-ascii sont entrés dans la chaîne en quelque sorte ..... Je les ai enlevés et cela a fonctionné. LOLz

+0

Définir "ne fonctionne pas". Cela fonctionne bien pour moi. –

+0

Cela devrait fonctionner très bien ... Quand vous dites que cela ne semble pas fonctionner - quels sont les résultats? Pouvez-vous essayer '

[^ <]*

' pour confirmer au moins la suppression de tous les paragraphes de travail? –

+0

Je pense que peut-être il y a un caractère non-ascii entre les balises de paragraphe en quelque sorte .. –

Répondre

2

Je voudrais essayer cette expression à la place:

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

Cela prendrait soin de <p></p> et <p/> paragraphes vides ainsi.

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

Sortie:

Résultat:

Je soupçonne que votre problème est que ce n'est pas ce que votre entrée ressemble. Vous aurez également le problème que les expressions rationnelles sont incroyablement mauvaises à l'analyse HTML et c'est généralement un effort de battre votre tête contre le mur pour essayer.

Questions connexes