语法 说明 表达式实例 完整匹配字符串
. 匹配任意除’\n’外的字符 a.c abc
\ 转义字符
预定义字符集
\d 数字[0-9] a\dc a1c
\D 非数字[^\d] a\dc abc
\s 空白字符[<空格>\t\r\n\f\v] a\sc a c
\S 非空白字符[^\s] a\Sc abc
\w 单词字符[A-Za-z0-9] a\wc abc
\W 非单词字符[^\w] a\Wc a c
数量词(用在字符或(…)之后)
* 匹配前一个字符 0 次或无限次 agv* ag 或者 agvvvvvv
+ 匹配前一个字符 1 次或无限次 agv* agv 或者 agvvvvvv
? 匹配前一个字符 0 次或 1 次 agv* ag 或者 agv
{m} 匹配前一个字符 m 次 ag{2}v aggv
{m,n} 匹配前一个字符 m 次至 n 次。mn 可以省略,若省略 m,则匹配 0 至 n 次;若省略 n,则匹配 m 至无限次 ag{1,2}v agv 或者 aggv
边界匹配(不消耗待匹配字符串中的字符)
^ 匹配字符串开头。在多行模式中匹配每一行开头 ^abc abc
$ 匹配字符串末尾。在多行模式中匹配每一行末尾 abc$ abc
\A 匹配字符串开头。 \Aabc abc
\Z 匹配字符串末尾 abc\Z abc
\b 匹配\w 和\W 之间 a\bac a!!ac
\B [^\b] a\Bbc abc
逻辑、分组
竖线 左右表达式任意匹配一个 abc’竖线’def abc 或 def
(…) 分组 (abc){2} abcabc
(?P<name>…) 分组。指定别名 (?Pabc){2} abcabc