Регулярочки. :3

338
.
Windler (10.10.2012/03:48)
У меня есть переменная $lol со значением:
<bgg>12312
<gg>lol</gg>
</bgg>123123
Мне нужно вырезать как-то lol (значение может меняться)
Делал так:
$yy = preg_replace('#<gg>(.+?)<\/gg>#is', '$1' ,
Тебе же не надо менять, а надо найти определенное значение. Поэтому используй preg_match();
Например:
$lol = '123';
$string = 'sdjfh <gg>'.$lol.'</gg> sdfsdf';
$pattern = '/<gg>(.+?)<\/gg>/';
preg_match($pattern, $string, $match);
if(isset($match[1]))
	echo $match[1];
else 
	echo 'Пусто ';
.
P_B_I
SlyDeath (10.10.2012 / 22:53)
$str = preg_replace('~<gg>.+?</gg>~i', '<gg>ВЫРЕЗАНО</gg>', $str);
Модная регулярка! Четко работает!
.
Krite, Зачем вы используете в регулярках "/"? Как следствие ненужное экранирование внутри выражения:
$pattern = '/<gg>(.+?)<\/gg>/';

Не проще ли юзать, например, тильду - она в регулярках почти никогда не мешает:
$pattern = '~<gg>(.+?)</gg>~';
Всего: 13