python 爬蟲 正規表示式

2021-10-05 01:33:14 字數 1264 閱讀 7043

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

1.依次拿出表示式和文字中的字元比較,

2.如果每乙個字元都能匹配,則匹配成功;一旦有匹配不成功的字元則匹配失敗。

3.如果表示式中有量詞或邊界,這個過程會稍微有一些不同。

1.數量詞的貪婪模式與非貪婪模式

正規表示式通常用於在文字中查詢匹配的字串。python裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配盡可能多的字元;非貪婪的則相反,總是嘗試匹配盡可能少的字元。例如:正規表示式」ab*」如果用於查詢」abbbc」,將找到」abbb」。而如果使用非貪婪的數量詞」ab*?」,將找到」a」。

:我們一般使用非貪婪模式來提取。

2.反斜槓問題

與大多數程式語言相同,正規表示式裡使用」\」作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元」\」,那麼使用程式語言表示的正規表示式裡將需要4個反斜槓」\\」:前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成乙個反斜槓。

python裡的原生字串很好地解決了這個問題,這個例子中的正規表示式可以使用r」\」表示。同樣,匹配乙個數字的」\d」可以寫成r」\d」。有了原生字串,媽媽也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀勒。

#返回pattern物件

re.compile

(string[

,flag]

)#以下為匹配所用函式

re.match(pattern, string[

, flags]

)re.search(pattern, string[

, flags]

)re.split(pattern, string[

, maxsplit]

)re.findall(pattern, string[

, flags]

)re.finditer(pattern, string[

, flags]

)re.sub(pattern, repl, string[

, count]

)re.subn(pattern, repl, string[

, count]

)

python爬蟲 正規表示式

正規表示式是十分高效而優美的匹配字串工具,一定要好好掌握。利用正規表示式可以輕易地從返回的頁面中提取出我們想要的內容。1 貪婪模式與非貪婪模式 python預設是貪婪模式。貪婪模式,總是嘗試匹配盡可能多的字元 非貪婪模式,總是嘗試盡可能少的字元。一般採用非貪婪模式來提取。2 反斜槓問題 正規表示式裡...

Python爬蟲 正規表示式

一般的正規表示式都可直接到正則生成工具處生成,常見匹配字元 re.match及其常規匹配 re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。re.match pattern,string,flags 0 返回的為乙個物件,其中span代表長...

Python 爬蟲 正規表示式

常見的正則字元和含義如下 匹配任意字元,除了換行符 匹配字串開頭 匹配字串末尾 匹配括號內表示式,也表示乙個組 s 匹配空白字元 s 匹配任何非空白字元 d 匹配數字,等價於 0 9 d 匹配任何非數字,等價於 0 9 w 匹配字母數字,等價於 a za z0 9 w 匹配非字母數字,等價於 a z...