正则表达式在文本匹配中使用广泛。网络爬虫中往往涉及对页面某些信息的提取,正则表达式能够极大的简化我们对信息的筛选过程。

        对正则表达式的学习可以参考http://www.runoob.com/python/python-reg-expressions.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")}可以用来查找符合规则的图像。