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)
二.字符串處理擴展
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安裝mysql的依賴包mysql-python操作
這篇文章主要介紹了python安裝mysql的依賴包mysql-python操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01詳解python tkinter包獲取本地絕對路徑(以獲取圖片并展示)
這篇文章主要給大家介紹了關(guān)于python tkinter包獲取本地絕對路徑(以獲取圖片并展示)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python內(nèi)置模塊OS?實現(xiàn)SHELL端文件處理器
這篇文章主要介紹了python內(nèi)置模塊OS實現(xiàn)SHELL端文件處理器,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09Pytorch-mlu?實現(xiàn)添加逐層算子方法詳解
本文主要分享了在寒武紀(jì)設(shè)備上?pytorch-mlu?中添加逐層算子的方法教程,代碼具有一定學(xué)習(xí)價值,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11python實現(xiàn)機器學(xué)習(xí)之元線性回歸
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)機器學(xué)習(xí)之元線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09