一:字符组
使用[],表示同一个位置可以匹配的字符
[0-9] :可以匹配到数字(同一位置)
[a-z]:可以匹配小写字母
[A-Z]:可以匹配大写字母
[A-Za-z0-9] 可以匹配大小写字母和数字
二:元字符
. 可以匹配出了换行符以外的任意字符
w 可以匹配数字,字母和下划线
s 可以匹配任意空白符
d 可以匹配数字
可以匹配换行符
可以匹配制表符
^ 匹配字符串的开始
$ 匹配字符串的结尾
W 与w相反,匹配非数字,字母,下划线
D 与d相反,匹配非数字
S 与s相反,匹配非空白符
a|b 匹配a或b
() 匹配括号内的表达式,也表示一个组 对多个字符组整体约束。
[...] 匹配字符组里的字符
[^....] 匹配非字符组里的字符
| 从左到右匹配,左边匹配到了,右边就不匹配了,将长的放左边。
、三:量词
* 重复0次或更多次 {0,}
+ 重复一次或更多次 {1,}
?重复0次或1次 {1,0}
{n} 重复n次 {n}
{n,} 重复n次,或更多次
{n,m}重复n次到m次
转义:
如果待匹配的字符串里有特殊字符,在正则和字符串的前面加r
如果特殊字符在字符组里,就是匹配的特殊字符,但是为了好记,所有特殊字符在匹配的时候都转义。
贪心和惰性匹配
在量词后加?就可以惰性匹配 .*?x