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()