Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 1.3 KB

93.md

File metadata and controls

51 lines (33 loc) · 1.3 KB

93 使用通用字符查找

在正则的世界里,通用字符指帮助我们更加简便的写出匹配规则的字符。

如上面文字,下面正则匹配串能找出以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)