1.字符组
1.1普通字符组
- 范围表示法:
[0-9]:数字0-9
[a-z]:字母a-z
- 并列范围表示法:
[0-9a-zA-Z]:数字、大写、小写
- 转义序列
\x:固定前缀
\x+num
num:字符对应的码值:两位的十六进制数值
A的码值是41
A:\x41
http://baike.baidu.com/link?url=QBVmMoP7SApG66stRIRX9SWflHrquPKXSPz0o3x2QGTBOFy-s9vxUoVtEuCZhGldMwll34vh87zYt8AWPCxe9q
所有ASCII范围:[\x00-\x7F]
1.2元字符及转义
元字符:[、]、^、$、-、
[0\-9]:0、-、9
真正的字符串应该写为:[0\\\\\-9]:0、-、9
python原生字符串:r"[0-9]",不需要转义
1.3排除型字符组
[^0-9]:0-9之外的字符
如果想匹配A8类型的字符串
[^0-9][0-9]
1.3字符组简记
\d:[0-9]
\w:[0-9a-zA-Z](并不准确,不建议使用:除了数字、大小写字母、还有-)
\s:[\t\r\n\v\f]:空白字符
\D、\W、\S分别代表\d、\w、\s的反
[\s\S]、[\w\W]、[\d\D]代表匹配任意字符
1.4字符组运算
java减法:
[aeiou]:匹配所有的元音字母
[[a-z]&&[^aeiou]]:匹配元音字母之外的所有字符
2.量词
print re.search("^\d\d\d\d\d\d$", "100569") != None --true
print re.search("^\d{6}$", "100569") != None --true