一.正規表示式
正規表示式(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 restring=「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代表長...