- 用import re导入正则表达式模块
- 用re.compile()函数创建一个Regex对象
- 用Regex对象的Search()方法传入想查找的字符串,它将返回一个Match对象
- 调用Match对象的group()方法返回实际匹配文本的字符串
匹配更多模式
- 用括号分组,用group(int)返回第int分组,groups()返回多个值的元组
- 用管道‘|’匹配多个分组,patternA或patternB
- 用findall()方法找到所有匹配的地方
- 用问号实现可选匹配:(xxx)?表示xxx可有可无
- 用星号*匹配任意次
- 用+匹配至少一次
- 花括号匹配特定次数,如(ha){3}将匹配hahaha {3,5}匹配3到5次
贪心匹配和非贪心匹配
python中正则默认是贪心的,如果在花括号后面加?就能变成非贪心匹配
findall()方法返回一个列表,包含所有匹配的字符串
字符分类
- \d匹配数字,\D是反义,匹配除数字以外任意字符
- \w匹配字母、数字、下划线,\D是反义
- \s匹配空白字符,\S匹配非空白字符
- [abcd]自定分类,[a-zA-Z0-9]也行
- [^abcd]匹配非abcd的字符
开头和结尾: ^xxxx匹配字符串开头,xxxx$匹配字符串结尾
.是通配字符, .*匹配所有字符串(除换行),如果想包括换行就要传入re.DOTALL作为re.compile()的第二个参数,如果想非贪心匹配就.*?
忽略大小写的匹配:传入re.IGONORECASE或re.l,作为第二个参数
sub()方法用于替换字符串,第一个参数是用来替换的字符串,第二个参数是被替换的字符串
r'''()'''可以多行正则表达式,传入re.VERBOSE作为第二个参数来忽略空白符和注释