0

我有这段代码,正在我用于正则表达式的所有测试器中工作,但后来,在我真正的 php 代码中它不起作用。我想要的是将链接中的数字替换为其他内容

     $value='/something.html?helperid=252';
     //patern
     $patternHelperId='/(?<=helperid=)\d{1,}/';
     //replace
     preg_replace($patternHelperId, "mynewreplacement",  $value);

     //debug
     echo "\n$value\n";//  /something.html?helperid=252????? aggain???

怎么了??

4

3 回答 3

2

您应该将preg_replaceback 的结果分配给$value,如下所示:

$value = preg_replace($patternHelperId, "mynewreplacement",  $value);

并且,作为旁注,\d{1,}可以替换为\d+.

于 2013-06-09T22:26:30.540 回答
2

preg_replace返回结果。它不会就地修改变量

于 2013-06-09T22:26:36.553 回答
1

您忘记获取preg_replace函数的结果:

$newValue = preg_replace($patternHelperId, "mynewreplacement",  $value);

echo "\n$newvalue\n";

更好的模式:

$patternHelperId='/helperid=\K\d++/';
于 2013-06-09T22:26:52.330 回答