Python 常用模塊 re 使用方法詳解
一.re模塊的查找方法:
1.findall 匹配所有每一項都是列表中的一個元素
import re
ret = re.findall('\d+','asd魯班七號21313') # 正則表達(dá)式,待匹配的字符串,flag
# ret = re.findall('\d','asd魯班七號21313') # 正則表達(dá)式,待匹配的字符串,flag
# print(ret)
2.search 只匹配從左到右的第一個,等到的不是直接的結(jié)果,而是一個變量,通過這個變量的group方法來獲取結(jié)果
import re
ret = re.search('\d+','asd魯班七號21313')
print(ret) # 內(nèi)存地址,這是一個正則匹配的結(jié)果
print(ret.group()) # 通過ret.group()獲取真正的結(jié)果
2.1如果沒有匹配到,會返回None,使用group會報錯
ret = re.search('\d+','asd魯班七號')
print(ret.group())
2.2所以這個時候調(diào)用我要用一下格式
ret = re.search('\d+','asd魯班七號')
if ret:
print(ret.group())
3.match 從頭開始匹配,相當(dāng)于search中的正則表達(dá)式加上^
ret = re.match('\d+','1233asd魯班七號21313')
print(ret)
二.字符串處理擴(kuò)展
1.split--切割
s = 'luban|cheng|an|'
print(s.split('|'))
s = 'luban34cheng21an89'
print(re.split('\d+',s))
2.sub--替換
ret = re.sub('\d+','H','luban34cheng21an89',1)
print(ret)
3.subn 返回一個元祖,返回第二個元素是替換的次數(shù)
ret = re.subn('\d+','H','luban34cheng21an89')
print(ret)
三.re模塊的進(jìn)階
1.compile 節(jié)省你使用正則表達(dá)式解決問題的時間,編譯正則表達(dá)式,編譯成字節(jié)碼,在多次使用的過程中,不會多次編譯
ret = re.compile('\d+') # 已經(jīng)完成編譯
print(ret)
res = ret.findall('luban34cheng21an89')
print(res)
res = ret.search('1233asd魯班七號21313')
print(res.group())
2.finditer 節(jié)省你使用正則表達(dá)式解決問題的空間
ret = re.finditer('\d+','1233asd魯班七號21313')
for i in ret:
print(i.group())
四.總結(jié)
findall 返回列表,找所有的匹配項
search 匹配就返回一個變量,通過group取匹配到的第一值,不匹配就返回None,group會報錯
match 相當(dāng)于search的正則表達(dá)式中加了一個'^'
split 返回列表,按照正則規(guī)則切割,默認(rèn)匹配到的內(nèi)容會被切掉
sub/subn 替換,按照正則規(guī)則去尋找要被替換的內(nèi)容,subn返回元祖,第二個值是替換的次數(shù)
compile 編譯一個正則表達(dá)式,用這個結(jié)果去search,match,fildall,finditer 能夠節(jié)省時間
finditer 返回一個迭代器,所有的結(jié)果都在這個迭代器中,需要通過循環(huán)+group的形式取值 能夠節(jié)省內(nèi)存
以上所述是小編給大家介紹的Python 常用模塊 re 使用方法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python數(shù)據(jù)可視化之Matplotlib和Seaborn的使用教程詳解
這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)可視化中Matplotlib和Seaborn使用的相關(guān)教程,文中的示例代碼講解詳細(xì),有需要的可以參考下2024-03-03
Python?OpenCV基于HSV的顏色分割實現(xiàn)示例
這篇文章主要為大家介紹了Python?OpenCV基于HSV的顏色分割實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解
在實際處理數(shù)據(jù)中,數(shù)據(jù)預(yù)處理操作中,常常需要去除掉重復(fù)的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python非單向遞歸函數(shù)如何返回全部結(jié)果
這篇文章主要介紹了Python非單向遞歸函數(shù)如何返回全部結(jié)果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python基礎(chǔ)教程之匿名函數(shù)lambda
這篇文章主要介紹了 python基礎(chǔ)教程之匿名函數(shù)lambda的相關(guān)資料,需要的朋友可以參考下2017-01-01

