字符匹配:
. 匹配任意一个字符(除去 ‘\n’)
[...] 匹配字符集
\d 匹配数字
\D 匹配非数字
\s 匹配空白字符
\S 匹配非空白字符
\w 匹配单词字符(a-z、A-Z、0-9)
\W 匹配非单词字符(如空格等)
* 匹配前一个字符0次或无限次
+ 匹配前一个字符1次或无限次
? 匹配前一个字符0次或1次
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m到n次
*? 匹配模式变为非贪婪(尽可能少匹配字符,匹配0次)
+? 匹配模式变为非贪婪(尽可能少匹配字符,匹配1次)
?? 匹配模式变为非贪婪(尽可能少匹配字符,匹配0次)
边界匹配:
^ 匹配字符串开头
$ 匹配字符串结尾
\A 指定的字符串必须出现在开头
\Z 指定的字符串必须出现在结尾
分组匹配:
|(或符号,即竖线) 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\<number> 引用编号为number的分组匹配到的字符串
(?P<name>) 分组起一个别名
(?P=name) 引用别名为name的分组匹配字符串