前面已经初步介绍了正则式的语法规则和re模块的方法。这次主要举了几个例子,看看re模块在实际工作中的使用。
1.re.match
设定一个字符串
常规匹配
输出结果
泛匹配
输出结果
目标匹配(括号及group的用法)
输出结果
re.match从字符串的开头匹配 (将常规匹配中表达式 改成 都不能匹配成功)
group与groups的用法:
查看正则式所匹配内容
查看正则式中第一个括号里面的内容
将正则式中所有括号里面的内容组成一个tuple,提取字符串要用切片的方法
里面的参数是从1开始的,不是0。
匹配模式的参数使用(re.S举例) 将content内容中增加换行符‘\n'
使用匹配模式的参数 ,忽略换行符匹配(具体参数规则请查阅上次的内容)
原本正则式 不会匹配换行符,但是填写参数 后,输出结果就能匹配到字符串中的换行符了
2.re.search
!!! 为匹配方便,能用search就不用match !!!
贪婪匹配
输出结果
非贪婪匹配
输出结果
区别:匹配目标 是想截取2018以后的连续6个字母数字及下划线
贪婪匹配中 ,尽可能多的匹配到中间的字符,只剩下最后6个字符作为匹配目标非贪婪匹配 ,却截取与匹配目标最接近的6个字符
3.re.findall
案例:正则式爬取豆瓣图书相关信息先获得单个html源码
这里只截取书名和价格
注意使用非贪婪匹配,否则不能截取所有信息
输出结果是由tuple组成的list
总结:
·尽量使用泛匹配
·使用括号得到匹配目标
·使用非贪婪模式
·有换行符就用re.S
领取专属 10元无门槛券
私享最新 技术干货