У меня есть простая проблема: я хочу создать регулярное выражение, соответствующее форме в HTML, но только если у формы есть какие-либо входные теги. Пример:
Должно совпадать следующее (игнорируя атрибуты):
..
<form>
..
<input/>
..
</form>
..
Но следующее не должно (игнорируя атрибуты):
..
<form>
..
</form>
..
Я перепробовал все, от осмотра до захвата групп, но это быстро усложняется. Я хочу верить, что есть простое регулярное выражение для решения проблемы. Обратите внимание, что важно, чтобы регулярное выражение связывало открывающий и закрывающий теги в соответствии с HTML-кодом, что означает, что следующее не работает:
<form>.+<input/>.+</form>
потому что он неверно соответствует этому:
..
<form> <--- This is wrongly matched as the opening tag
..
</form>
<form> <-- This is the correct opening tag of the correct form
..
<input/>
..
</form> <--- This is matched as the closing tag
..
EDIT:
Я уже создал RegEx, который соответствует тому, что я хочу; мой вопрос сейчас, как это сделать, но как это сделать ПРОСТО / элегантно.
Для меня это совсем не просто и не элегантно:
<form>
(.(?<!</form>))+
<input/>
(.(?<!</form>))+
</form>