将ereg_replace转换为preg_replace

use*_*167 6 php deprecated

我必须转换ereg_replacepreg_replace

ereg_replace代码是:

ereg_replace( '\$([0-9])', '$\1', $value );
Run Code Online (Sandbox Code Playgroud)

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

preg_replace( '\\$([0-9])\', '$\1', $value );
Run Code Online (Sandbox Code Playgroud)

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

Taz*_*Taz 12

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

如果你ereg_replace()按预期工作,那么只需在模式中添加分隔符,它就可以完成任务.以下所有示例都有效:

preg_replace('/\$([0-9])/', '&#36;\1', $value);
Run Code Online (Sandbox Code Playgroud)

要么

preg_replace('#\$([0-9])#', '&#36;\1', $value);
Run Code Online (Sandbox Code Playgroud)

要么

preg_replace('%\$([0-9])%', '&#36;\1', $value);
Run Code Online (Sandbox Code Playgroud)


saf*_*rov 1

尝试

preg_replace( '#\$([0-9])#', '\$$1', $value );
Run Code Online (Sandbox Code Playgroud)