PHP 中从 Ereg 到 Preg 的转换
在 PHP 中,POSIX 正则表达式 (ereg) 自版本 5.3.0 起已被弃用。为了促进过渡,有必要了解如何将旧的 ereg 表达式转换为 PCRE(Perl 兼容正则表达式)(preg)。
语法差异
主要语法不同之处在于 preg 中添加了分隔符。例如,以下 ereg 表达式:
eregi('^hello world');
应转换为 preg_match 表达式,如下所示:
preg_match('/^hello world/', $str);
分隔符可以是各种非字母数字字符,常见选择是~、/ 和 #.
匹配括号
此外,您可以使用匹配的括号作为分隔符:
preg_match('[^hello]', $str); preg_match('(^hello)', $str); preg_match('{^hello}', $str);
转义分隔符
如果您的分隔符出现在常规中表达式,使用 a 转义它反斜杠:
eregi('^/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');
示例转换
在您提供的示例中,不需要正则表达式。相反,您可以使用以下 PHP 函数:
stripos($str, 'hello world') === 0
以上是如何在 PHP 中将 ereg 正则表达式转换为 preg?的详细内容。更多信息请关注PHP中文网其他相关文章!