将ereg_replace转换为preg_replace

时间:2012-04-15 06:16:39

标签: php deprecated

我必须将ereg_replace转换为preg_replace

ereg_replace代码是:

ereg_replace( '\$([0-9])', '$\1', $value );

由于preg由开始和结束反斜杠表示,我假设转换为:

preg_replace( '\\$([0-9])\', '$\1', $value );

由于我不熟悉正则表达式,我不确定上述是否是正确的使用方法?

2 个答案:

答案 0 :(得分:12)

ereg_replace()preg_replace()之间的区别之一是该模式必须用分隔符括起来:delimiter + pattern + delimiter。如documentation中所述,分隔符可以是任何非字母数字,非反斜杠,非空白字符。这意味着有效的分隔符为:/#~+%@!和{ {1}},前两个最常用(但这只是我的猜测)。

如果您的<>按预期工作,那么只需在模式中添加分隔符即可完成。以下所有示例都有效:

ereg_replace()

preg_replace('/\$([0-9])/', '&#36;\1', $value);

preg_replace('#\$([0-9])#', '&#36;\1', $value);

答案 1 :(得分:1)

尝试

preg_replace( '#\$([0-9])#', '\$$1', $value );