6

我必须转换ereg_replacepreg_replace

ereg_replace 代码是:

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

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

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

由于我对正则表达式没有很好的了解,我不确定以上是否是正确的使用方法?

4

2 回答 2

13

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

如果您ereg_replace()按预期工作,那么只需在模式中添加分隔符,它就会完成。下面的所有示例都将起作用:

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

或者

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

或者

preg_replace('%\$([0-9])%', '&#36;\1', $value);
于 2012-04-15T07:06:28.030 回答
1

尝试

preg_replace( '#\$([0-9])#', '\$$1', $value );
于 2012-04-15T06:29:31.053 回答