PHP Manual
后退 |  | 前进

# CIX. 正则表达式函数库（POSIX 扩展）

# 简介

> 提示: PHP 也支持使用 Perl 兼容语法的 PCRE 函数库，支持 non-greedy 匹配，断言，条件子模式以及其它许多 POSIX 扩展正则表达式语法所不支持的特性。

警告
本类正则表达式并不能安全用于二进制模式。PCRE 函数库则可以。

正则表达式在 PHP 中用来做复杂的字符串操作。支持正则表达式的函数为：

- ereg()

- ereg_replace()

- eregi()

- eregi_replace()

- split()

- spliti()

这些函数都接受一个正则表达式字符串作为其第一个参数。PHP 使用由 POSIX 1003.3 定义的 POSIX 扩展正则表达式。POSIX 正则表达式完整的描述见包含在 PHP 发行包中 regex 目录下的 man 页面。可以通过类似 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() 提供。

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