2012-02-18 3 views
3

В основном мне нужно удалить все пустые абзацы из текста. Следующие, похоже, не работают ...Java Regex Удаление пустых абзацев

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

Любые мысли о том, почему?

Не-ascii персонажи попали в строку как-то ..... Я удалил их, и это сработало. Lolz

+0

Определить, что «не работает». Это отлично работает для меня. –

+0

Это должно работать нормально ... Когда вы говорите, что это не работает, каковы результаты? Можете ли вы попробовать '

[^ <]*

' подтвердить хотя бы удаление всех абзацев? –

+0

Я думаю, может быть, есть символ не-ascii между тегами абзаца каким-то образом .. –

ответ

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, и это обычно попытка попытаться выполнить удар по голове и против стены.

Смежные вопросы