表达式 |
可匹配 |
\r, \n |
代表回车和换行符 |
\t |
制表符 |
\\ |
代表 "\" 本身 |
表达式 |
可匹配 |
\^ |
匹配 ^ 符号本身 |
\$ |
匹配 $ 符号本身 |
\. |
匹配小数点(.)本身 |
表达式 |
可匹配 |
\d |
任意一个数字,0~9 中的任意一个 |
\w |
任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个 |
\s |
包括空格、制表符、换页符等空白字符的其中任意一个 |
. |
小数点可以匹配除了换行符(\n)以外的任意一个字符 |
表达式 |
可匹配 |
[ab5@] |
匹配 "a" 或 "b" 或 "5" 或 "@" |
[^abc] |
匹配 "a","b","c" 之外的任意一个字符 |
[f-k] |
匹配 "f"~"k" 之间的任意一个字母 |
[^A-F0-3] |
匹配 "A"~"F","0"~"3" 之外的任意一个字符 |
表达式 |
可匹配 |
{n} |
表达式重复n次,比如:"\w{2}" 相当于 "\w\w";"a{5}" 相当于 "aaaaa" |
{m,n} |
表达式至少重复m次,最多重复n次,比如:"ba{1,3}"可以匹配 "ba"或"baa"或"baaa" |
{m,} |
表达式至少重复m次,比如:"\w\d{2,}"可以匹配 "a12","_456","M12344"... |
? |
匹配表达式0次或者1次,相当于 {0,1},比如:"a[cd]?"可以匹配 "a","ac","ad" |
+ |
表达式至少出现1次,相当于 {1,},比如:"a+b"可以匹配 "ab","aab","aaab"... |
* |
表达式不出现或出现任意次,相当于 {0,},比如:"^*b"可以匹配 "b","^^^b"... |
表达式 |
可匹配 |
^ |
与字符串开始的地方匹配,不匹配任何字符 |
$ |
与字符串结束的地方匹配,不匹配任何字符 |
\b |
匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符 |
表达式 |
可匹配 |
| |
左右两边表达式之间 "或" 关系,匹配左边或者右边 |
( ) |
(1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰 |
|
(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到 |
表达式 |
可匹配 |
\S |
匹配所有非空白字符("\s" 可匹配各个空白字符) |
\D |
匹配所有的非数字字符 |
\W |
匹配所有的字母、数字、下划线以外的字符 |
\B |
匹配非单词边界,即左右两边都是 "\w" 范围或者左右两边都不是 "\w" 范围时的字符缝隙 |
正向预搜索 "(?=xxxxx)","(?!xxxxx)"
反向预搜索 "(?<=xxxxx)","(?<!xxxxx)"
贪婪模式:dxxxdxxxd
表达式 |
可匹配 |
(d)(\w+) |
"\w+" 将匹配第一个 "d" 之后的所有字符 "xxxdxxxd" |
(d)(\w+)(d) |
"\w+" 将匹配第一个 "d" 和最后一个 "d" 之间的所有字符 "xxxdxxx"。虽然 "\w+" 也能够匹配上最后一个 "d",但是为了使整个表达式匹配成功,"\w+" 可以 "让出" 它本来能够匹配的最后一个 "d" |
表达式 |
可匹配 |
(d)(\w+?) |
"\w+?" 将尽可能少的匹配第一个 "d" 之后的字符,结果是:"\w+?" 只匹配了一个 "x" |
(d)(\w+?)(d) |
为了让整个表达式匹配成功,"\w+?" 不得不匹配 "xxx" 才可以让后边的 "d" 匹配,从而使整个表达式匹配成功。因此,结果是:"\w+?" 匹配 "xxx" |
1、/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个
2、/i 表示匹配的时候不区分大小写,这个跟其它语言的正则用法相同
3、/m 表示多行匹配。什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号
4、/s 与/m相对,单行模式匹配。
5、/e 可执行模式,此为PHP专有参数,例如preg_replace函数。
6、/x 忽略空白模式
网友评论