在正则的世界里,通用字符指帮助我们更加简便的写出匹配规则的字符。
如上面文字,下面正则匹配串能找出以d开始,[a-z]表示的任意一个小写英文字符,{7}表示小写英文字符出现7次(下面情况3会说到),也就是匹配出来的子串长度为1+7=8:
pat = 'd[a-z]{7}'
result = re.findall(pat,s)
匹配结果为:
['daughter', 'desperat', 'daunting', 'destruct', 'destruct']
同理,模式串pat = 'd[a-z]{10}'
匹配的结果为:
['destruction', 'destructibl']
模式串pat = 'd[a-z]{11}'
匹配的结果为:
[ 'destructible']
你看,通用字符[a-z]
使用真方便,5个字符一下就表达了所有26个小写的字符,但是注意[a-z]
匹配26个小写字符的任意一个.
类似功能的通用字符还包括:
[A-Z] 匹配大写英文字母
[0-9] 匹配一个0-9之间的数字
还有更加强大的通用字符:
\s 匹配空白字符,如\n \t \b等
\w 匹配任意字母、数字、下划线
\d 匹配十进制数字0-9
而\S, \W, \D 分别对应 \s, \w, \d匹配字符集的补集,例如\S 的意思是匹配 \s 以外的其他任意字符。
[上一个例子](92.md) [下一个例子](94.md)