Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Почеме не срабатывает preg_replace
Форумы портала PHP.SU » PHP » Регулярные выражения » Почеме не срабатывает preg_replace

Страниц (1): [1]
 

1. Флекс - 26 Марта, 2015 - 19:30:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $str = '[p1=>1][p2=>2][p3=>3][p4=>4]';
  2. $str = preg_replace('\[p2=>\w+[a-zA-Z0-9_]]','[p2=>333]', $str);
  3. echo $str;


Огорчение Подскажите почему не происходит замена?
2. GoDr - 26 Марта, 2015 - 19:32:28 - перейти к сообщению
Флекс, а давай с первого класса начнём, .... что и на что ты хочешь заменить? Подмигивание
3. Флекс - 26 Марта, 2015 - 19:39:27 - перейти к сообщению
Хочу что бы в строке:

$str = '[p1=>1][p2=>2][p3=>3][p4=>4]';

Подстрока [p2=>2] менялась например на [p2=>22] или вобще удалялась. Но то что, стоит после [p2=>(тут может быть что угодно)] нам не известно, поэтому пытаюсь искать с помощью такой регулярки \[p2=>\w+[a-zA-Z0-9_]] но она не срабатывает
(Добавление)
Всё разобрался))
Дело было в регулярке
PHP:
скопировать код в буфер обмена
  1. $str = '[p1=>1][p2=>2][p3=>3][p4=>4]';
  2. $str = preg_replace('!\[p2=>[a-z0-9_]\]!i','[p2=>333]', $str);
  3. print $str;
4. GoDr - 26 Марта, 2015 - 19:45:18 - перейти к сообщению
ну например можно попробовать так
PHP:
скопировать код в буфер обмена
  1. $str = '[p1=>1][p2=>2][p3=>3][p4=>4]';
  2. $str = preg_replace('#\[p2=>.*?\]#is','[p2=>44444444]', $str);
  3. echo $str;

 

Powered by ExBB FM 1.0 RC1