Есть пример текста:
[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)
Комментариев нет:
Отправить комментарий