preg替换占位符

时间:2011-10-12 11:54:02

标签: php

我正在尝试将号码附加到另一个号码

$n = 123;
$str = "some string with tt=789_ and more";
echo preg_replace("/tt=[0-9]+/", "$0$n", $str);

我希望这会打印“tt = 789_123以及更多的字符串”,因为某些原因我得到了“23_以上的字符串”。

1 个答案:

答案 0 :(得分:4)

在您的示例中,$0$n已转换为$0123 confuse preg_replace(请参阅替换部分)。

所以正确的方法是执行以下操作:

$n = 123;
$str = "some string with tt=789_ and more";
echo preg_replace("/tt=[0-9_]+/", "\${0}$n", $str);

我还在您的角色类中添加了_,否则会返回tt=789123_