Опять реги

  • Автор темы Автор темы mani13
  • Дата начала Дата начала

mani13

Новичок
Опять реги

Допустим есть строка:
$str = 'ggggfffffghushgus';
Как при помощи регов вытащить "gggg" и "ghushgus"?
preg_match_all("/\[b\](.*)\[\/b\]/", $str, $match);
не помогает...делать так:
preg_match_all("/\[b\]([^\[\/b\]])*\[\/b\]/", $str, $match);
нельзя, так как будут игнорироваться строки, содержащие символы [ ] / и между и
Вот как бы написать, что в строке между тэгами и не должно быть [/b]?
 
Читать:

http://detail.phpclub.net/article/simple_regular
http://detail.phpclub.net/article/regexp_1
http://detail.phpclub.net/article/regexp_2
 
mani13

так а чем тебя первая регулярка неустраивает?
добавь только к ней модификатор U
ungreedy который.
 
mani13
и убрать нафиг все слеши, а вместо " (двойных) использовать ' (одинарные)
 
mani13

Код:
\[b\]((?>[^[]*)(?>(?!\[\/?b\])\[[^[]*)*)\[\/b\]

Взято из книги "Регулярные выражения" Фридл (2-е издание)
 
Сверху