正则表达式中的常用元字符速查

基本元字符

. :匹配任意单个字符
|:逻辑或操作符
[]: 匹配字符集合中的一个字符
[^]:对字符集合求非
-:定义一个区间,比如[a-z]、[0-9]
\:对下一个字符转义(与要转义的字符之间不能有空格)

数量元字符

*:匹配前一个字符(或子表达式)的零次或多次重复
*?: *的懒惰型版本
+:匹配前一个字符(或子表达式)的一次或多次重复 (至少一次)
+?:+的懒惰型版本
{n}:匹配前一个字符(或子表达式)的n次重复
{m,n}:匹配前一个字符(或子表达式)至少m次且至多n次重复(即大于等于m次,小于等于n次)
{n,}:匹配前一个字符(或子表达式)n次或更多次重复(至少n次)
{n,}?:{n,}的懒惰型版本

位置元字符

^:匹配字符串的开头
$:匹配字符串的结束
\b:匹配单词边界(开头或结束,b是boundary边界之意)
\B:\b的反义

特殊字符元字符

[\b]:退格字符
\d:匹配任意数字字符
\D:\d的反义
\f:换页符
\n:换行符
\r:回车符
\s:匹配一个空白字符
\S:\s的反义
\t:制表符(Tab字符)
\v:垂直制表符
\w:匹配任意字母数字字符或下划线字符
\W:\w的反义
\x:匹配一个十六进制数字
\0:匹配一个八进制数字

回溯引用和前后查找

():定义一个子表达式
\1:匹配第1个子表达式;\2表示第2个子表达式,依次类推
?=:向前查找
?<=:向后查找
?!:负向前查找
?!=:负向后查找
?():条件(if then)
?()|:条件(if then else)

匹配模式

(?m):分行匹配模式