Не анализировать HTML с регулярным выражением
Проблема в том, что независимо от того, какое регулярное выражение мы пишем, было бы легко придумать случай, когда он не работает. Только представьте, когда внутри type="string"
.
можно найти специальные символы.
Вместо этого вы должны использовать настоящий Java-парсер HTML (например, jsoup )
Однако, если вы хотите игнорировать мои предупреждения и использовать регулярное выражение, которое может легко нарушить некоторые необычные входные данные, попробуйте что-то вроде этого:
final String expressionTemplate = "(?<=<element name=\"XYZ\"[^>]{0,99}>)(.*?)(?=</element>)";
Известные проблемы:
- прерывается, если в type = "string"
- разрывается, если открывающий тег длиннее указанного количества (см. Жестко запрограммированный код
99
)
- множество других способов его поломки ...
<!--
комментарии HTML и т. Д.