范围 | |
^ | 在单行模式中匹配文本最前面的位置,在多行模式中匹配每一行的行首 |
$ | 在单行模式中匹配文本最后面的位置,在多行模式中匹配每一行的行尾 |
数量 | |
+ | 匹配 1 个以上,例如 a+ 匹配 a、aaa、aaaaa |
? | 匹配 0 个或 1 个,例如 ab? 匹配 a、ab |
* | 匹配 0 个以上,例如 ab* 匹配 a、ab、abb、abbbb |
{n} | 匹配 n 个,例如 ab{3} 匹配 abbb |
{n,m} | 匹配 n 个以上,例如 ab{3,} 匹配 abbb、abbbbb |
字符 | 描述 |
. | 匹配非 '\n' 以外的任意字符 |
\ | 转义符,将特殊字符变成普通字符看待,例如 \+ 匹配字符 + |
\d | 匹配一个数字 |
\D | 匹配一个非数字 |
\s | 匹配一个空格 |
\S | 匹配一个非空格 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\w | 匹配一个包含下划线在内的单词或字符,相当于[a-zA-Z0-9],例如 world_one |
\W | 匹配一个包含下划线在内的非单词 |
[0-9] | 匹配一个0-9的数字 |
[a-z] | 匹配括号未包含的范围字符,该例匹配 a~z任意一个字符 |
[^a-z] | 匹配括号内未包含的范围字符 |
(pattern) | 把匹配内容放到分组中 |
(?:pattern) | 匹配,但不放到分组中 |
(?=pattern) | 零宽断言,断言前方是 pattern |
(?!pattern) | 零宽断言,断言前方不是 pattern |
(?<=pattern) | 零宽断言,断言后方是 pattern |
(?<!pattern) | 零宽断言,断言后方不是 pattern |