php - 将 ereg_replace 转换为 preg_replace

标签 php deprecated

我必须将 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])/', '&#36;\1', $value);

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

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

关于php - 将 ereg_replace 转换为 preg_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159990/

相关文章:

ios - 如何将 UIKit 类或方法标记为已弃用?

php - 如何根据另一个表获取每个值的计数?

php - cakephp 3 允许用户只编辑他们的个人资料

php - 如何制定连接多个表的查询

java - 为什么在 JDK 9 中弃用了小程序?

ruby-on-rails - "SourceIndex#each is deprecated"。如何纠正?

php - PHP 需要__destruct 方法吗?

php - Live Search 在 keyup 后不删除 'old' 数据

ios - UIDevice uniqueIdentifier 已弃用 - 现在该怎么办?

java - 我的类(class)代码中已弃用的 API 在哪里?我想不通