我必须将ereg_replace
转换为preg_replace
ereg_replace代码是:
ereg_replace( '\$([0-9])', '$\1', $value );
由于preg由开始和结束反斜杠表示,我假设转换为:
preg_replace( '\\$([0-9])\', '$\1', $value );
由于我不熟悉正则表达式,我不确定上述是否是正确的使用方法?
答案 0 :(得分:12)
ereg_replace()
和preg_replace()
之间的区别之一是该模式必须用分隔符括起来:delimiter + pattern + delimiter
。如documentation中所述,分隔符可以是任何非字母数字,非反斜杠,非空白字符。这意味着有效的分隔符为:/
,#
,~
,+
,%
,@
,!
和{ {1}},前两个最常用(但这只是我的猜测)。
如果您的<>
按预期工作,那么只需在模式中添加分隔符即可完成。以下所有示例都有效:
ereg_replace()
或
preg_replace('/\$([0-9])/', '$\1', $value);
或
preg_replace('#\$([0-9])#', '$\1', $value);
答案 1 :(得分:1)
尝试
preg_replace( '#\$([0-9])#', '\$$1', $value );