使用 PHP 转换 PCRE 表达式
在 PHP 5.3.0 及更高版本中不再建议使用 POSIX 正则表达式 (ereg)。本文提供了一种将旧的 ereg 表达式转换为仍受支持的 Perl 兼容正则表达式(PCRE 或 preg)的简单方法。
语法更改
主要区别需要注意的是 preg 中添加了分隔符。它们防止与表达式中的字符发生冲突。常见的分隔符包括 ~、/ 和 #。
转义分隔符
如果分隔符出现在表达式中,则必须对其进行转义。例如,包含正斜杠的表达式需要转义:
preg_match('/^\/hello/', $str);
使用 preg_quote
要确保正确添加转义字符,请使用 preg_quote 函数。它转义所有分隔符和保留字符:
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
不区分大小写
i 修饰符提供不区分大小写的匹配,如 eregi:
preg_match('/^hello/i', 'HELLO');
参考指南
有关 PHP 中 PCRE 语法的全面参考,请查阅官方手册。此外,该手册还详细介绍了 POSIX 和 PCRE 正则表达式之间的差异,有助于转换过程。
简单表达式的更简单替代方案
在提供的示例中(匹配字符串开头的“hello world”),可能不需要正则表达式:
stripos($str, 'hello world') === 0
以上是如何轻松地将 PHP ereg 正则表达式转换为 PCRE?的详细内容。更多信息请关注PHP中文网其他相关文章!