元字符
.
:匹配任意字符(除\n)
\w
:匹配字母,数字,下划线
\W
:匹配非字母,数字,下划线
\s
:匹配任意空白字符
\S
:匹配任意非空白字符
\d
:匹配任意十进制数
限定符
?
前面的字符可以出现 0 次或 1 次(可有可无)
*
前面的字符可以出现 0 次或者是多次
+
前面的字符出现一次以上
{}
可以限定出现的次数
例如
{n}前面出现 n 次
{n,}最少出现 n 次
{n,m}最少出现 n 次,最多 m 次
边界符
\b
单词边界符
\B
非该单词边界
/g
全局标记找到所有匹配子串
匹配模式
/m
多行匹配
^
开头
$
结尾
.*
:贪婪验证
.*?
:惰性验证
其他字符
[]
区间字符:匹配[]所指定的字符
[.?!]匹配句号,问号,感叹号
[0-5]匹配 0,1,2,3,4,5
^
排除字符:匹配不在[]中指定的字符
[^0-5]匹配除了 0,1,2,3,4,5 之外的字符
|
选择字符:用于匹配|作用的任意字符
\d{18}|\d{15}匹配 18 位或 15 位身份证
\
转义字符:将特殊字符转为普通字符使用
[\u4e00-\u9fa5]
:匹配任意一个汉字
()
分组:改变限定字符的作用
分组
-
普通分组
()
-
非捕获分组
(?:<表达式>)
-
回溯分组
\<number>
数字代表了第几个分组
(ab)+ ab 出现一次以上
断言
先行断言
-
正向
(?=<表达式>)
右边必须出现某个字符
-
反向
(?!<表达式>)
右边不能出现某个字符
后行断言
-
正向
(?<=<表达式>)
左边必须出现某个字符
-
反向
(?<!<表达式>)
左边不能出现某个字符