# PHP的正则表达式函数
preg_match
preg_meatch_all
preg_grep
preg_filter
preg_split
preg_quote
# 正则表达式
* **界定符**
* **原子**
* **量词**
* **边界控制**
* **模式单元**
* * * * *
## 界定符
**解释: 标识一个正则表达式的开始和结束.它告诉PHP解释器,正则表达式从哪里开始到哪里结束**
**例子: /[0-9]/---- #[0-9]# ----{[0-9]}**
备注:在PHP中,"/", "{", "#" 都可以作为界定符, 不推荐使用 "{"
* * * * *
## 正则表达式验证工具
**regexpal** 地址:[http://regexpal.isbadguy.com/](http://regexpal.isbadguy.com/)
* * * * *
## 原子(最小匹配单位)
* **可见原子: unicode编码表中用键盘输出后肉眼可见的字符**
包括:
标点符号 , ; ? 等等
英文字母数字 a-z A-Z 0-9
汉字,日文,阿拉伯文等其他语言文字
数理化公式符号
其他可见的字符
* **不可见原子: unicode编码表中用键盘输出后肉眼不可见的字符**
包括:
空格,tab制表符(\t),换行(\n)等
* * * * *
## 元字符
* 定义原子的筛选方式
| 匹配两个或多个分支选择
[] 匹配方括号中的任意一个原子, 区间功能:[a-z][A-Z][0-9][0-3]
[^]匹配除了方括号中的原子之外的人任意字符
例子:
匹配Duang~和duang~ 1. Duang~|duang~ 2. [Dd]uang~
匹配789 1. [789]
匹配飞789 1.[^789]
* 定义原子的集合(这类元字符写法固定)
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字[a-zA-Z0-9_]
\s 匹配任意的不可见原子[\f\n\r\t\v]
\d 匹配数字[0-9]
\b 匹配单词的开始或结束
^ 匹配行的开始
$ 匹配行的结束
\W 匹配任意不是字母,数字,下划线,汉字的字符[^a-zA-Z0-9_]
\S 匹配任意可见原子[^\f\n\r\t\v]
\D 匹配任意非数字的字符[^0-9]
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
* * * * *
## 量词
{n} 标识其前面的原子恰好出现n次
{n,} 标识其前面的原子最少出现n次
{n,m} 标识其前面的原子最少出现n次,最多出现m次
* \* 匹配0次,1次或者多次其之前出现的原子 {0,}
* + 匹配1次或者多次其之前出现的原子 {1,}
* ? 匹配0次或者1次其之前出现的原子 {0,1}
## 边界控制
^ 匹配字符串开始的位置
$ 匹配字符串结尾的位置
## 模式单元
() 匹配其中的整体为一个原子
## 修正模式
解释:给正则表达式的匹配过程指定一种匹配模式
分为:
贪婪模式: 匹配结果出现起义时候取其长(默认是贪婪模式)
懒惰模式: 匹配结果出现起义时候取其短(懒惰模式使用:U) 例子: /[099]/U
忽略大小写: i
忽略空白: x
让元字符"."匹配包括换行符在内的所有字符: s
总模式: 每一个pattern可以看作一个总模式
子模式: pattern中每一个模式单元(...)称为子模式