如何在preg_replace中保留数字和特殊字符

时间:2018-12-16 08:01:20

标签: php regex preg-replace

我想用45美元的价格替换{goal}括号。例如

 $pattern = /\{goal\}/

 $replacement = $45.00

 $subject = Final price is {goal}

所以功能看起来像

 preg_replace('/\\{goal\\}/', '$45.00', 'Free shipping for all orders over {goal}');

实际输出应为

Final price is $45.00

但是我得到的输出是

 Final price is .00

因此preg_replace似乎用空白字符串替换了整个数字和特殊字符。有什么解决办法可以保留它。

1 个答案:

答案 0 :(得分:2)

  

$n将替换为n'th括号模式捕获的文本。 manual

使用'$45.00' php时,将其视为第45个捕获组。因此,您应该通过$绕过\来解决问题

preg_replace('/\{goal\}/', '\$45.00', 'Free shipping for all orders over {goal}');