06Python爬虫---正则表达式05之实战

实例1:匹配.com或.vn后缀的URL网址

import re
string = "<a href='http://www.baidu.com'>百度首页</a>"
pattern = "[a-zA-Z]+://[^/s]*[.com|.cn]"
result = re.search(pattern, string)
print(result)  # 结果:<_sre.SRE_Match object; span=(9, 29), match='http://www.baidu.com'>

首先观察:
(1)固定的有://,可以写出来,
(2)是.com、.cn结尾 那么就写为[.com|.cn]
(3)在://和[.com|.cn]中间不能有空格 所以写为[^/s]*
(4)在://之前必须要有内容,而且至少有一次重复,所以用+而不用*,这些内容可以使任意字符的组合,包括大小写,所以写为[a-zA-Z]+
(5)组合起来的表达式[a-zA-Z]+://[^/s]*[.com|.cn]


实例2:匹配电话号码

实例目的:将一串字符串里面出现的电话号码信息提取出来,过滤掉其他无关信息
import re
string = "021-6728263653682382265236"
pattern = "\d{4}-\d{7}|\d{3}-\d{8}"
result = re.search(pattern, string)
print(result)  # 结果:<_sre.SRE_Match object; span=(0, 12), match='021-67282636'>

电话号码区位数字有3位,有4位,所以后面的数字为8位或者7位,中间用-连接。 \d{4}-\d{7}|\d{3}-\d{8}


实例3:匹配电子邮箱地址

import re
string = "<a href='http://www.baidu.com'>百度首页</a><br><a href='mailto:[email protected]'>电子邮箱</a>"
pattern = "\w+([.+-]\w+)*@\w+([.-]\w+)*\.\w+([.-]\w+)*"
result = re.search(pattern, string)
print(result)  # 结果:<_sre.SRE_Match object; span=(59, 81), match='[email protected]'>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章