首页 >后端开发 >php教程 >如何在 PHP 中将 ereg 正则表达式转换为 preg?

如何在 PHP 中将 ereg 正则表达式转换为 preg?

Barbara Streisand
Barbara Streisand原创
2024-12-20 15:02:14187浏览

How to Convert ereg Regular Expressions to preg in PHP?

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

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