VDS за 300р от нашего партнера SpaceWeb
[60]
17 Окт 2012, 13:30

Рекурсивные шаблоны. Комбинация (?R) в регулярном выражении

Привет!

Дайте пожалуйста, пример работы с рекурсивными шаблонами в регулярных выражениях PHP. Я нигде не могу найти нужную мне информацию по этому поводу. Меня интересует поиск тегов. Нужно находить правильно открывающий и закрывающий тег в не зависимости, есть ли в нем вложенные теги.

#php

Комментарии (1)
grom 17.10.2012 22:12

Могу дать очень простой пример.

$text = "<div>текс в див<div>а это вложенный див</div></div><div>а это другой див</div>";
$rule = "#(?:<(div)>)(?:(?:(?!</?\\1>).)|(?R))*(?:</\\1>)#is";
echo special_chars(preg_replace($rule, "<FLAG>\\0</FLAG>", $text));

Этот код просто обрамит все теги DIV в тег FLAG. Просто для примера. Так же можно поменять скажем на BB коды.
+1

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки:
Лучшее
[52]
16 Окт 2011, 15:38
Вывести все элементы POST
[просмотров 14588]
[74]
31 мая 2011, 11:48
Python проверка существования переменной
[просмотров 10249]
[100]
19 Дек 2014, 16:16
User-agent для Internet Explorer 11
[просмотров 9587]
[4]
10 Окт 2018, 15:33
Как запретить просмотр сайта по IP?
[просмотров 9168]
[125]
21 Июл 2011, 14:04
Python Imaging Library (PIL)
[просмотров 7438]
[315]
11 Авг 2011, 00:21
Спецификация HTML5 от W3C
[просмотров 7368]
[315]
16 Июл 2011, 20:03
Python работа с MySQL
[просмотров 5338]

Вести с Хабра