Я немного исследовал это, но не смог найти работающего примера, как сопоставить вложенные HTML-теги с атрибутами.Я знаю, что можно сопоставить сбалансированные / вложенные внутренние теги без атрибутов (например, регулярное выражение для и будет #<div\b[^>]*>(?:(?> [^<]+ ) |<(?!div\b[^>]*>))*?</div>
# x).
Однако я хотел бы видеть шаблон регулярного выражения, который находит HTMLпара тегов с атрибутами.
Пример: он в основном должен соответствовать
<div class="aaa"> **<div class="aaa">** <div> <div> </div> **</div>** </div>
, а не
<div class="aaa"> **<div class="aaa">** <div> <div> **</div>** </div> </div>
У кого-нибудь есть какие-нибудь идеи?цели, которые мы могли бы использовать: http://www.lumadis.be/regex/test_regex.php
PS.Стивен упомянул решение в своем блоге (на самом деле в комментарии), но оно не работает
http://blog.stevenlevithan.com/archives/match-innermost-html-element
$regex = '/<div\b[^>]+?\bid\s*=\s*"MyID"[^>]*>(?:((?:[^<]++|<(?!\/?div\b[^>]*>))+)|(<div\b[^>]*>(?>(?1)|(?2))*<\/div>))?<\/div>/i';