正則表達式在文本匹配中使用普遍。網絡爬蟲中每每涉及對頁面某些信息的提取,正則表達式可以極大的簡化咱們對信息的篩選過程。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")}能夠用來查找符合規則的圖像。