PHP 也支持使用 Perl 兼容语法的 PCRE 函数,支持 non-greedy 匹配,断言,条件子模式以及其它许多 POSIX 扩展正则表达式语法所不支持的特性。
本类正则表达式并不能安全用于二进制模式。PCRE 函数则可以。
正则表达式在 PHP 中用来做复杂的字符串操作。PHP 使用 POSIX 扩展的正则表达式,其由 POSIX 1003.2 定义。对于 POSIX 正则表达式完整的说明见 » regex 手册页,位于 PHP 发布包中的 regex 目录下。这是 UNIX 下的手册格式,需要用类似如下命令 man /usr/local/src/regex/regex.7 来阅读。
要编译本扩展模块无需外部库文件。
除非知道自己在做什么,否则不要改变 TYPE。
要激活 regexp 的支持在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是 system,apache 或 php 之一。默认使用 php。
PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。
本扩展模块在 php.ini 中未定义任何配置选项。
本扩展模块未定义任何资源类型。
本扩展模块未定义任何常量。
Example#1 正则表达式例子
<?php
// 如果在 $string 中任何地方找到 "abc" 则返回 &true;
ereg ("abc", $string);
// 如果 $string 以 "abc" 开头则返回 &true;
ereg ("^abc", $string);
// 如果 $string 以 "abc" 结尾则返回 &true;
ereg ("abc$", $string);
// 如果用户浏览器是 Netscape 2,3 或 MSIE 3 则返回 &true;
eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);
// 将三个空格分隔的单词放入 $regs[1],$regs[2] 和 $regs[3] 中
ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs);
// 将 <br /> 标记放到 $string 开头
$string = ereg_replace ("^", "<br />", $string);
// 将 <br /> 标记放到 $string 结尾
$string = ereg_replace ("$", "<br />", $string);
// 删除 $string 中的所有换行符
$string = ereg_replace ("\n", "", $string);
?>