在 PHP 中将 ereg 正则表达式转换为 preg
由于 PHP 5.3.0 弃用了 POSIX 正则表达式 (ereg),因此将旧的 ereg 表达式转换为PCRE(Perl 兼容正则表达式)(preg)变得至关重要。本文提供了一个简化的指南来促进这种过渡。
与 ereg 不同,preg 需要在正则表达式的两端使用分隔符。常用的分隔符包括~、/和#。例如,ereg 表达式“^hello world”可以通过将其括在正斜杠内来转换为 preg_match(“/^hello world/”)。
匹配括号也可以用作分隔符,允许诸如 1、(^你好) 和 {^你好}。但是,表达式中包含的分隔符必须使用反斜杠进行转义。示例:ereg("^/hello", $str) 变为 preg_match('/^/hello/', $str)。
preg_quote 函数在转义字符串中的分隔符和保留字符方面被证明很有用。示例: $expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str).
PCRE 支持 i (不区分大小写)等修饰符,相当于 eregi。示例: eregi('^hello', 'HELLO') 可以替换为 preg_match('/^hello/i', 'HELLO')。
详细的 PCRE 语法参考和 ereg-PCRE 转换指导,请参阅 PHP 手册。
在某些情况下,可能不需要正则表达式。对于提供的示例 (eregi('^hello world')),使用 stripos($str, 'hello world') === 0 进行简化比较就足够了。
以上是如何在 PHP 中有效地将 ereg 正则表达式转换为 preg?的详细内容。更多信息请关注PHP中文网其他相关文章!