在Python中有一个非常重要也非常好用的模块re,在import re后,就能够在Python中使用正则表达式,源于此次项目要用正则表达式对html代码提取一定的字符,所以在这也就用些小例子来熟悉一下正则表达式
现在就用最简单的例子
import re
s='<title>http://www.baidu.com</title>'
print re.findall(r'</w+>(.+)</',s)
运行后结果为
>>>
['http://www.baidu.com']
这个相对来说还是比较简单的,但是这个正则表达式还是有比较多的问题
1对于比较复杂的字符串,比如嵌套了标签的字符串,就没有办法了,因为只能够判断最外一层的<></>标记而已
2是这个是判断具有类似<></>标记的字符串,对于实际的html中的提取,还是要加上具体的值,比如是title,还是head
import re
s='<head><title>http://www.baidu.com</title></head>'
print re.findall(r'title>(.+)</title',s)
运行后得到
>>>
['http://www.baidu.com']
虽然在这个比较简单的代码中我们解决了上述两个问题,但是针对html中更加复杂的代码,我觉得还是会有很多的问题
不过今天也就是简单的熟悉一下正则表达式,所以也就不再去深入研究,经过队员的讨论后在探讨解决问题的方案
下面给出一个判断邮箱地址是否合法的正则表达式
邮箱主要包括@和.,所以在判断的时候也只需假如这两个条件就可以了
import re
s='zhuangruln@gmail.com zhuangasdsad@126.com zhusdandsai@adsd'
print re.findall(r'(/w+@/w+/./w+)',s)
运行结果
['zhuangruln@gmail.com', 'zhuangasdsad@126.com']
>>>