我必须将 ereg_replace
转换为 preg_replace
ereg_replace 代码为:
ereg_replace( '\$([0-9])', '$\1', $value );
由于 preg 由开始和结束反斜杠表示,我假设转换是:
preg_replace( '\\$([0-9])\', '$\1', $value );
由于我不太了解正则表达式,所以我不确定上面的方法是否正确?
最佳答案
ereg_replace()
之间的差异之一和 preg_replace()
是模式必须用定界符括起来:delimiter + pattern + delimiter
.如 documentation 中所述, 分隔符可以是任何非字母数字、非反斜杠、非空白字符。这意味着有效的分隔符是:/
, #
, ~
, +
, %
, @
, !
和 <>
,前两个最常用(但这只是我的猜测)。
如果您的 ereg_replace()
按预期工作,然后只需向模式添加定界符即可。以下所有示例都将起作用:
preg_replace('/\$([0-9])/', '$\1', $value);
或
preg_replace('#\$([0-9])#', '$\1', $value);
或
preg_replace('%\$([0-9])%', '$\1', $value);
关于php - 将 ereg_replace 转换为 preg_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159990/