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

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

Barbara Streisand
发布: 2024-12-20 15:02:14
原创
191 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板