Опять реги

mani13

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

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

alpine

Новичок
Читать:

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

neko

tеam neko
mani13

так а чем тебя первая регулярка неустраивает?
добавь только к ней модификатор U
ungreedy который.
 

Profic

just Profic (PHP5 BetaTeam)
mani13
и убрать нафиг все слеши, а вместо " (двойных) использовать ' (одинарные)
 

sage

Новичок
mani13

Код:
\[b\]((?>[^[]*)(?>(?!\[\/?b\])\[[^[]*)*)\[\/b\]
Взято из книги "Регулярные выражения" Фридл (2-е издание)
 
Сверху