preg_replace 2

4you

еееххххх....
preg_replace 2

Доброго все времени суток. Подскажите плизз...
Eсть строка
PHP:
$str = '[item]one two three[/item][item2]Raz Dva Tri[/item2]
Необходимо вырезать и присвоить переменной всю инфу заключённую между [item][/item].
Использую preg_replace:
PHP:
$item = preg_replace("/(\[item\])(.*)(\[\/item\])/s","\$2", $str);
В результате получаю данные между [item][/item] + продолжение строки, т.е. [item2]Raz Dva Tri[/item2], а необходимо получить просто: one two three. Подскажите плиз... Чуствую что в модификаторах дело. Перебробовал все.
 

young

Новичок
$str = '[item]one two three[/item][item2]Raz Dva Tri[/item2]';
echo preg_replace("/\[item\](.*)\[\/item\]/Us","\\1", $str);


Возвращает one two three[item2]Raz Dva Tri[/item2]

$str = '[item]one two three[/item][item2]Raz Dva Tri[/item2]';
echo preg_replace("/^.*\[item\](.*)\[\/item\].*$/s","\\1", $str);

Возвращает one two three
 

young

Новичок
А по поводу модификаторов - если у тебя строка многострочная /sm тебя спасут
 

4you

еееххххх....
Спасибо.
Случаем не знаешь ресурс в нете где можно было бы почитать о preg_replace и шаблонах? А то всегда на грабли натыкаюсь с этим...
 

young

Новичок
http://www.php.net/manual/en/pcre.pattern.syntax.php
http://www.php.net/manual/en/pcre.pattern.modifiers.php

http://php.spb.ru/regular_expression.html
 

4you

еееххххх....
Так и знал... :) Вот на русском бы чего. Ясно, спасибо ещё раз.
 
Сверху