PHP正则表达式替换函数eregi_replace不起作用
$s="abc465fds";$p="\d+";echo@eregi_replace($p,"a",$s);为什么替换不了??...
$s = "abc465fds";
$p = "\d+";
echo @eregi_replace($p,"a",$s);
为什么替换不了?? 展开
$p = "\d+";
echo @eregi_replace($p,"a",$s);
为什么替换不了?? 展开
1个回答
展开全部
在5.3版的以后的php,比如5.4, 5.5,已经废除了eregi_replace函数
去掉@,用preg_replace替代。
去掉@,用preg_replace替代。
追问
在PHP中 所有正则表达式函数,在写正则表达式的时候,是不是都要用"/"来做分界
比如正则表达式“\d+”,在正则表达式函数中就要写成"/\d+/"
我试了下 至少preg_replace是这样的
那PHP中其他的正则表达式函数是不是都是如此呢?
追答
只有preg_xxxxx等函数需要这种分界符
preg_xxxxx等函数属于和Perl语言兼容的正则库。
也像perl那样有分界符
分界符可以用# / % ~多种
/\d+/
#\d+#
%\d+%
~\d+~
都是等价的
5.3之前的eregi_xxx函数属于与POSIX标准兼容的正则库,就不用这种分解符。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询