python re模块的使用(一)

前面已经初步介绍了正则式的语法规则和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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180421G1D3KS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券