繁体   English   中英

非常简单的preg_replace不起作用

[英]very simple preg_replace doesnt work

我有这段代码,可以在我用于正则表达式的所有测试器中使用,但是后来,在我真正的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???

怎么了??

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

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

另外,可以将\\d{1,}替换为\\d+

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

function: 您忘记了使用函数的结果:

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

echo "\n$newvalue\n";

更好的模式:

$patternHelperId='/helperid=\K\d++/';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM