Здравствуйте, есть текст:
Код | $str=' [spoiler] Спойлер-1 [/spoiler] [spoiler] Спойлер-2 [spoiler] Спойлер-2-1 [/spoiler] [spoiler] Спойлер-2-2 [spoiler] Спойлер-2-2-1 [/spoiler] [/spoiler] [spoiler] Спойлер-2-3 [/spoiler] [/spoiler] [spoiler] Спойлер-3-s [ ] [/spoiler] '; |
Нужна регулярка, которая бы нашла текст между [ spoiler] [ /spoiler], в которых нет вложенного [spoiler], т.е из текста выше регулярка должна вернуть:
Код | [0]=>Спойлер-1 [1]=>Спойлер-2-1 [2]=>Спойлер-2-2-1 [3]=>Спойлер-2-3 [4]=>Спойлер-3-s [ ] |
Понимаю, что нужно как-то использовать негативный просмотр вперёд/назад, что-то вроде:
Код | preg_match_all('#\[spoiler\](.*?)(?!\[spoiler\])\[/spoiler\]#', $str, $matches);
|
но что-то не получается... |