正则表达式在文本匹配中使用普遍。网络爬虫中每每涉及对页面某些信息的提取,正则表达式可以极大的简化咱们对信息的筛选过程。html
咱们以对一个邮箱的正则匹配为例,介绍正则表达式的应用。
一个邮箱地址能够分解成如下几种规则:
- 邮箱地址的第一部分至少包括一种内容:大写字母,小写字母,数字0-9,点号(.),加号(+)或者下划线(_),对应的正则表达式为[A-Za-z0-9\._+]+
- 以后,包含一个@符号,在@以后,邮箱地址至少包含一个大写或小写字母,对应正则式为[A-Za-z]+,而后包含一个点号,最后邮箱地址以com、org、edu、net等域名结尾,(com|org|edu|net)
- 将这几条规则汇总,能够获得匹配邮箱的正则表达式为:
[A-Za-z0-9\._+]+@[A-Za-z]+\.(com|org|edu|net)
利用这一表达式咱们就能够很方便的解析出网页中的邮箱地址而不须要写不少的字符判断。
正则表达式不只能够独立使用,还能够用在BeautifulSoup中,事实上,大多数支持字符串参数的函数均可以使用正则表达式实现。
如在BeautifulSoup的find函数中,find("img",{“src”:re.compile("xxx")}能够用来查找符合规则的图像。