正则表达式的作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。模式:由正则表达式字符及文本字符所编写的过滤条件。
正则表达式分为两类:一是基本正则表达式:BRE;二是扩展正则表达式:ERE。正则表达式是由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。其中元字符分:字符匹配、匹配次数、位置锚定、分组。
正则表达速查表
[abc] 匹配中括号中的单个字符,如a或b或c
[^abc] 匹配除了a、b、c等字符的其他单个字符
[a-z] 匹配一个字符范围,如a到z
[a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
^ 匹配行的开始
$ 匹配行的结束
\A 匹配一个 字符串 的开始
\z 匹配一个字符串的结束
. 匹配任意单个字符
\s 匹配空白字符,如空格,TAB
\S 匹配非空白字符
\d 匹配一个数字
\D 匹配非数字
\w 匹配一个字母
\W 匹配非字母
\b 匹配字符边界
(...) 引用所有括号中的内容
(a|b) a或者b
a? 零个或1个a
a* 零个或多个a
a+ 1个或多个a
a{3} 3次重复的a
a{3,} 3次或3次以上重复的a
a{3,6} 3到6次重复的a
修正符
/g 查找所有可能的匹配 /i 不区分大小写 /m 多行匹配 /s 单行匹配 /x 忽略空白模式 /e 可执行模式,PHP专有 /A 强制从目标字符串开头匹配 /D 使用$限制结尾字符,则不允许结尾有换行 /U 只匹配最近的一个字符串;不重复匹配