preg_replace. Как экранировать знак доллара "$"

3D

Новичок
preg_replace. Как экранировать знак доллара "$"

проблемма в следующем:

нужно функцией preg_replace по шаблону заменить определенный блок на другой блок содеращий в себе знак доллара и цифру после него (например цена $10). Preg_replace воспринимает знак доллара и цифру после него, как переменную для подстановки.

Как это обойти?
 

vovanium

Новичок
triumvirat
А там не всё так просто, слэшем не экранируется, двойной $ тоже не катит, самое простое в квадратных скобках указывать
 

AmdY

Пью пиво
Команда форума
всё дело в волшебных кавычках, хорошая наука не пользоваться двойными кавычками где не попадя. в одинарных всё прекрасно экранируется.
 

SiMM

Новичок
> слэшем не экранируется
Клевета и происки врагов.
 

3D

Новичок
Вы не правильно поняли. мне нужно экранировать знак доллара не в регулярном выражении, а в блоке текста для подстановки
 

Гризли

Новичок
PHP:
<?php
$text = '99abc';
$text = preg_replace('/\d{2}/', '\$10', $text);
echo $text;
?>
Вроде работает
$10abc
 

3D

Новичок
Всем спасибо.

решил проблему так
PHP:
$tmp=preg_replace('/\$/','\\\$',$tmp);
 

DiMA

php.spb.ru
Команда форума
так же можно почитать про eval в регах по / ... /e , тогда аргумент замены перейдет в стороннюю функцию без искажений (кроме слеширования кавычек)
 
Сверху