符号 | 含义 | 例子 | 匹配结果 |
---|---|---|---|
* | 匹配前面的字符、表达式或括号里的字符0次或多次 | a*b* | aaaa、aabb |
+ | 匹配前面的字符、表达式或括号里的字符至少一次 | a+b+ | aabb、abbbb |
? | 匹配前面的字符一次或0次 | Ab? | A、Ab |
. | 匹配任意单个字符,包括数字、空格和符号 | b.d | bad、b3d、b#d |
[ ] | 匹配[ ]内的任意一个字符,即任选一个 | [a-z]* | zero、hello |
\ | 转义符,把后面的特殊意义的符号按原样输出 | \.\|\\ | .|\ |
^ | 指字符串开始位置的字符或子表达式 | ^a | apple、aply、asd |
$ | 经常用在表达式的末尾,表示从字符串的末端匹配。如果不用它,则每个正则表达式的实际表达形式都带有.*作为结尾。这个符号可以看成^符号的反义词 | .*A$ | asdA、sA |
| | 匹配任意一个有|分隔的部分 | b(i|ir|a)d | bid、bird、bad |
?! | 不包含。这个组合经常放在字符或者正则表达式前面,表示这些字符不能出现。如果在某整个字符串中全部排除某个字符,就要加上^和$符号 | ^((?![A-Z]).)*$ | 除了大写字母以前的所有字母、字符均可 |
( ) | 表达式编组,()内的正则表达式会优先运行 | (a*b)* | aabaaab、aaabab |
{m,n} | 匹配前面的字符串或者表达式m~n次,包含m和n次 | go{2,5}gle | gooogle、goooogle |
[^] | 匹配任意一个不在中括号内的字符 | [^A-Z]* | sed、hase |
\d | 匹配一位数字 | a\d | a1、a2 |
\D | 匹配一位非数字 | 3\D | 3a、3b |
\w | 匹配一个字母或数字 | \w | 3、A、a |