2010-04-02 3 views
2

Я использую JEditorPane для визуализации базового HTML. Но это неправильно делает самозакрывающиеся теги, особенно br-теги, например. < б/у > это плохой но < б/у > хороший. Я хотел бы использовать String.replaceAll (regex, «<br>»), чтобы исправить HTML, где регулярное выражение представляет собой регулярное выражение, соответствующее любому самозакрывающемуся тегу br с нечувствительностью к регистру и от нуля до бесконечности число пробелов между «r "и "/"(например, < бр/>, < BR/>, < ш/>, < Br        /> и т.д.).Регулярное выражение, JEditorPane, самозакрывающиеся теги

Спасибо любому специалисту по регулярному выражению, которое может решить это!

+0

''
является недействительной HTML, в любом случае. И '
' будет недействительным XHTML. Не было бы проще обработать базовый HTML правильно, вместо того чтобы взломать его после этого с помощью регулярных выражений? – Joey

+0

Мой исходный HTML - с конца 90-х. Действительно, прежде чем использовать HtmlCleaner для очистки и извлечения фрагментов для хранения базы данных, MOST из br-тегов не закрывается должным образом. Но ТОГДА Мне нужно использовать JEditorPane для его рендеринга, поэтому его нужно преобразовать обратно в стандарты до HTML4! И, конечно, нам может понадобиться использовать Flying Saucer или какое-то другое решение для рендеринга в будущем, поэтому лучше всего поддерживать его в стандарте в базе данных и исправлять его на лету для JEditorPane. –

ответ

4

Вы можете использовать регулярное выражение:

<[bB][rR]\s*/> 
  • <: Для того, чтобы соответствовать буквальному <
  • [bB]: Класс обугленного, который соответствует либо b или B
  • [rR]: класс гольца, который соответствует либо r, либо R
  • \s: Любое одно пустое место
  • \s*: пустое или большее количество пробелов.

Если вы хотите разрешить только пространство для белого пространства, вы можете использовать:

<[bB][rR] */> 
+0

Удивительный, спасибо за быстрый ответ и объяснение! Я проверю его сейчас и отметю как ответ, если он сработает! –

+0

Работает как очарование! –

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