我正在尝试将号码附加到另一个号码
$n = 123;
$str = "some string with tt=789_ and more";
echo preg_replace("/tt=[0-9]+/", "$0$n", $str);
我希望这会打印“tt = 789_123以及更多的字符串”,因为某些原因我得到了“23_以上的字符串”。
答案 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_
。