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]'>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章