Stur
Guest
рекурсивное регулярное выражеие
дело в следуйщем
надо чтобы регла обрабатывала правильно вложеные теги
в результирующий массив попадало
название тега, атрибуты тега если есть, и внутренний текст.
и еще, теги также могут быть одинарными типа такого
<clInfo border=1/> в этом случае находим название и атрибуты
например такой html
<div>
....текст1
<div>
.......текст2
</div>
.....текст3
</div>
.... текст4
<div>
....текст5
</div>
мой вариант
'{<(' . $tagName . ')([^>]*)(?
?:/>)|(?:>(.*)</\1>))}Usi'
вместо tagName подставляется название искомого тега
в принципе она работает но не совсем правильно
два вложенных <DIV > обрабатываются неправильно регла захватывает ближайший закр. тег и отваливает вот так:
<div>
....текст1
<div>
.......текст2
</div>
если включить жадность (убрать U) тогда регла захватит вообще весь текст т.е. до последнего загрыв </div>
в мануле нашел такой пример рекурсивный
\( ( ( (?>[^()]+) | (?R) )* )\)
онт правильно обрабатывает вложеные + последовательные скобки
получается так что мне вместо вот этого ограничения [^()]
надо поставить название моего тега только как это сделать?
заранее спасибо.
дело в следуйщем
надо чтобы регла обрабатывала правильно вложеные теги
в результирующий массив попадало
название тега, атрибуты тега если есть, и внутренний текст.
и еще, теги также могут быть одинарными типа такого
<clInfo border=1/> в этом случае находим название и атрибуты
например такой html
<div>
....текст1
<div>
.......текст2
</div>
.....текст3
</div>
.... текст4
<div>
....текст5
</div>
мой вариант
'{<(' . $tagName . ')([^>]*)(?

вместо tagName подставляется название искомого тега
в принципе она работает но не совсем правильно
два вложенных <DIV > обрабатываются неправильно регла захватывает ближайший закр. тег и отваливает вот так:
<div>
....текст1
<div>
.......текст2
</div>
если включить жадность (убрать U) тогда регла захватит вообще весь текст т.е. до последнего загрыв </div>
в мануле нашел такой пример рекурсивный
\( ( ( (?>[^()]+) | (?R) )* )\)
онт правильно обрабатывает вложеные + последовательные скобки
получается так что мне вместо вот этого ограничения [^()]
надо поставить название моего тега только как это сделать?
заранее спасибо.