# PHP中正则的使用

## PHP中的PCRE库和POSIX库的对比

| POSIX            | PCRE            |
| ---------------- | --------------- |
| ereg\_replace()  | preg\_replace() |
| ereg()           | preg\_match()   |
| eregi\_replace() | preg\_replace() |
| eregi()          | preg\_match()   |
| split()          | preg\_split()   |
| spliti()         | preg\_split()   |
| sql\_regcase()   | 无对等函数           |

**注意：PHP5.3 中已经对POSIX库函数废弃，不要在使用**

## **PHP常用的模式修饰符**&#x20;

* i  大小写不敏感匹配
* m 增强的行锚点模式
* x  空白和#注释将被忽略
* s  点号元字符匹配所有字符，包含换行符(意思是,点本身比配是不包含换行符的,使用s修饰符,点也同时包含换行符)
* e  将替换后的字符串作为php 代码评估执行(匹配替换后的字符做为php代码执行,返回的结果为最终结果)

## PCRE的分隔符

PCRE需要由分隔符闭合包裹。

分隔符可以使任意非字母数字、非反斜线、非空白字符。

* （1） /foo bar/
* （2）#^\[^0-9]$#
* （3）+php+
* （4）%\[a-zA-Z0-9\_-]%

## PCRE的主要函数

* preg\_grep — 返回匹配模式的数组条目
* preg\_match — 执行一个正则表达式匹配
* preg\_match\_all — 执行一个全局正则表达式匹配
* preg\_filter — 执行一个正则表达式搜索和替换
* preg\_replace — 执行一个正则表达式的搜索和替换
* preg\_replace\_callback — 执行搜索并且使用一个回调进行替换
* preg\_split — 通过一个正则表达式分隔字符串
* preg\_quote — 转义正则表达式字符
* preg\_last\_error — 返回最后一个PCRE正则执行产生的错误代码
