Добрый день!
Мне нужно вернуть массив содержащий разобранную строку BB кода.
Вот, например, есть BB код вида:
$text = '[BCODE:solution]text text text[/BCODE]';
Я написал такую регулярку:
preg_match_all('/\[BCODE\s*:\s*([\'"]?)([^\'"\]]+)\1\]/', $text, $out, PREG_PATTERN_ORDER);
Возвращается массив вида:
[0] => Array
(
[0] => [BCODE:solution]
)
[1] => Array
(
[0] =>
)
[2] => Array
(
[0] => solution
)
Но нет закрывающего BB кода (BCODE) и если не указывать BCODE (т.е. не будет BCODE:solution ) текст - вернется пустой массив. Я понимаю, что написал неверное регулярное выражение. Может кто из здешних мастеров подсказать регулярку, что бы возвращался массив содержащий название BB кода (BCODE), описание, если есть (solution) текст BB кода (text text text) и завершающий тег (/BCODE)?
Заранее огромное спасибо и поклон, кто подскажет!