在 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中文网其他相关文章!