Python爬蟲 正規表示式補充

2021-10-22 07:37:15 字數 2058 閱讀 1979

一.正規表示式

正規表示式(regular expression,簡稱regex或re)又稱為正規表示法或常規表示法,常常用來檢索、替換那些符合某個模式的文字,它首先設定好了一些特殊的字及字元組合,通過組合的「規則字串」來對表示式進行過濾,從而獲取或匹配我們想要的特定內容。它具有靈活、邏輯性和功能性非常的強,能迅速地通過表示式從字串中找到所需資訊的優點,但對於剛接觸的人來說,比較晦澀難懂。

1.re模組

python通過re模組提供對正規表示式的支援,使用正規表示式之前需要匯入該庫。

import re

其基本步驟是先將正規表示式的字串形式編譯為pattern例項,然後使用pattern例項處理文字並獲得乙個匹配(match)例項,再使用match例項獲得所需資訊。常用的函式是findall,原型如下:

findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags])

該函式表示搜尋字串string,以列表形式返回全部能匹配的子串。

其中引數re包括三個常見值:

(1)re.i(re.ignorecase):忽略大小寫(括號內是完整寫法)

(2)re.m(re.multiline):允許多行模式

(3)re.s(re.dotall):支援點任意匹配模式

pattern 物件是乙個編譯好的正規表示式,通過 pattern 提供的一系列方法可以對文字進行匹配查詢。 pattern 不能直接例項化,必須使用 re.compile() 進行構造。

2.complie方法

re正規表示式模組包括一些常用的操作函式,比如complie()函式。其原型如下:

compile(pattern[,flags] )

該函式根據包含正規表示式的字串建立模式物件,返回乙個pattern物件。引數flags是匹配模式,可以使用按位或「|」表示同時生效,也可以在正規表示式字串中指定。pattern物件是不能直接例項化的,只能通過compile方法得到。

簡單舉個例項,使用正規表示式獲取字串中的數字內容,如下所示:

import re

string=「a1.45,b5,6.45,8.82」

regex = re.compile(r"\d+.?\d*")

print regex.findall(string)

[『1.45』, 『5』, 『6.45』, 『8.82』]

3.match方法

match方法是從字串的pos下標處起開始匹配pattern,如果pattern結束時已經匹配,則返回乙個match物件;如果匹配過程中pattern無法匹配,或者匹配未結束就已到達endpos,則返回none。該方法原型如下:

match(string[, pos[, endpos]]) | re.match(pattern, string[, flags])

引數string表示字串;pos表示下標,pos和endpos的預設值分別為0和len(string);引數flags用於編譯pattern時指定匹配模式。

4.search方法

search方法用於查詢字串中可以匹配成功的子串。從字串的pos下標處起嘗試匹配pattern,如果pattern結束時仍可匹配,則返回乙個match物件;若無法匹配,則將pos加1後重新嘗試匹配;直到pos=endpos時仍無法匹配則返回none。 函式原型如下:

search(string[, pos[, endpos]]) | re.search(pattern, string[, flags])

引數string表示字串;pos表示下標,pos和endpos的預設值分別為0和len(string));引數flags用於編譯pattern時指定匹配模式。

5.group和groups方法

group([group1, …])方法用於獲得乙個或多個分組截獲的字串,當它指定多個引數時將以元組形式返回。groups([default])方法以元組形式返回全部分組截獲的字串,相當於呼叫group(1,2,…last)。default表示沒有截獲字串的組以這個值替代,預設為none。

Python 正規表示式 補充

cuiqingcai大佬 python3 網路爬蟲開發實戰 整理 貪婪與非貪婪 import recontent hello 12345678 word this is a regex demo result re.match he.d demo content print result.group...

python爬蟲 正規表示式

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

Python爬蟲 正規表示式

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