Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

PHP. Получить бб-теги из текста регуляркой. Что не так?

Есть пример текста:
[BB1:description]data[/BB1] asdfasf [BB2]data[/BB2] asfasfasf [BB3:description]data [BB4]data[/BB4] asfasfasf [/BB3] asfasfasf
Нужно из него дернуть теги (заголовки), их содержимое и описание.
Написал:
$text = '[BB1:description]data[/BB1] asdfasf [BB2]data[/BB2] asfasfasf [BB3:description]data [BB4]data[/BB4] asfasfasf [/BB3] asfasfasf '; $pattern = "/\[(\w+)(?:[\:]([\w]+))?\](.*)\[\/\1\]/iu"; preg_match_all($pattern, $text, $matches); print_r($matches);
На regex101.com все работает. В пхп, получаю:
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) )
Почему пустой вывод? Что не так?


Ответ

После некоторых экспериментов нашлось решение:
"/\[(\w+)(?:[\:]([\w]+))?\](.*)\[\/\\1\]/iu"
(два слеша, вместо одного = \\1)

Комментариев нет:

Отправить комментарий