python 學(xué)習(xí)點(diǎn)---正則表達(dá)式

1.re模塊:re.match(pattern,string,flag=0)

2.group(num) 或 groups() 匹配對象函數(shù)來獲取匹配表達(dá)式

3.re.search 掃描整個字符串并返回第一個成功的匹配:re.search(pattern,string,flags)

re.match與re.search的區(qū)別

re.match只匹配字符串的開始,如果字符串開始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None;而re.search匹配整個字符串,直到找到一個匹配。

import re?

line =''cats are smarter than dogs''

#match定義匹配規(guī)則

matchObj = re.match(r'dogs',line,re.M|re.I)

if matchObj:

print ("match --. matchObj.group():",matchObj.group())

research 匹配規(guī)則:

matchObj = re.search( r'dogs', line, re.M|re.I)


re模塊提供了re.sub用于替換字符串中的匹配項

re.sub(pattern,rep1,string,count=0)

pattern : 正則中的模式字符串。

repl : 替換的字符串,也可為一個函數(shù)。

string : 要被查找替換的原始字符串。

count : 模式匹配后替換的最大次數(shù),默認(rèn) 0 表示替換所有的匹配。


例如:phone ="2004-959-559 #這是一個電話號碼“

#刪除注釋

num =re.sub(r'#.*s',"",phone)? ? ========2004-959-559

#移除非數(shù)字的內(nèi)容

num=re.sub(r'\D',"",phone)??========2004959559

匹配是根據(jù)對應(yīng)的??compile 函數(shù)用于編譯正則表達(dá)式,生成一個正則表達(dá)式( Pattern )對象,供 match() 和 search() 這兩個函數(shù)使用。 ---re.complile(pattern[,flags])

findall? ?在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個列表,如果沒有找到匹配的,則返回空列表

findall(string[, pos[,endpos]])? string 待匹配的字符串? ?pos 可選參數(shù),制定字符串的起始位置,默認(rèn)字符串的長度?

re.finditer(pattern,string,flags=0)

import re?

it =re.finditer(r"\d+","12a32bc43jf3")

for match in it?

pringt(match.group())

re.split? split 方法按照能夠匹配的字串將分割后返回列表形式如下

re.split(pattern.string[,maxsplit=0,flag=0)

常用的re.complile()

m.group()? start() end() span()



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容