PHP 手册
后退 |  | 前进

# CXXIII. POSIX 扩展正则表达式函数

# 简介

> 提示: 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` 中未定义任何配置选项。

# 资源类型

本扩展模块未定义任何资源类型。

# 预定义常量

本扩展模块未定义任何常量。

# 范例

例子 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);
?>`

# 参见

Perl 兼容语法的正则表达式见 PCRE 函数。简单的命令行解释器风格的通配符匹配由 fnmatch() 提供。

后退 | 起点 | 前进
preg_split | 上一级 | ereg_replace