首页 >后端开发 >php教程 >如何将我的 PHP 代码从 `ereg` 迁移到 `preg` 正则表达式?

如何将我的 PHP 代码从 `ereg` 迁移到 `preg` 正则表达式?

Barbara Streisand
Barbara Streisand原创
2024-12-26 11:38:10236浏览

How Do I Migrate My PHP Code from `ereg` to `preg` Regular Expressions?

在 PHP 中从 EReg 迁移到 PREG

自 PHP 5.3.0 起,POSIX 正则表达式 (ereg) 已被弃用,需要采用Perl 兼容正则表达式 (preg)。此转换需要修改现有的 ereg 表达式以与 preg_match 兼容。

语法差异

关键的语法更改涉及向表达式添加分隔符。与 ereg 不同,preg 在正则表达式前后需要分隔符。分隔符可以是 ~、/ 或 # 等字符,甚至可以是匹配的括号(例如 []、()、{})。

preg_match('/^hello/', $str); // Using '/' as a delimiter
preg_match('[^hello]', $str); // Using square brackets as a delimiter

转义分隔符

如果所选分隔符出现在正则表达式中,请使用反斜杠将其转义().

preg_match('/^\/hello/', $str);

使用 preg_quote

要全面转义所有分隔符和保留字符,请使用 preg_quote:

$expr = preg_quote('/hello', '/');
preg_match('/^'.$expr.'/', $str);

不区分大小写匹配

要执行不区分大小写的匹配,请使用 i 修饰符:

preg_match('/^hello/i', $str);

转换给定示例

提供的示例、 eregi('^hello world') 不应转换为 preg_match,因为它可以使用 stripos 进行简化功能:

stripos($str, 'hello world') === 0

以上是如何将我的 PHP 代码从 `ereg` 迁移到 `preg` 正则表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn