您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在Python中使用re模塊,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
一.re模塊的查找方法:
1.findall 匹配所有每一項都是列表中的一個元素
import re ret = re.findall('\d+','asd魯班七號21313') # 正則表達式,待匹配的字符串,flag # ret = re.findall('\d','asd魯班七號21313') # 正則表達式,待匹配的字符串,flag # print(ret)
2.search 只匹配從左到右的第一個,等到的不是直接的結果,而是一個變量,通過這個變量的group方法來獲取結果
import re ret = re.search('\d+','asd魯班七號21313') print(ret) # 內存地址,這是一個正則匹配的結果 print(ret.group()) # 通過ret.group()獲取真正的結果
2.1如果沒有匹配到,會返回None,使用group會報錯
ret = re.search('\d+','asd魯班七號') print(ret.group())
2.2所以這個時候調用我要用一下格式
ret = re.search('\d+','asd魯班七號') if ret: print(ret.group())
3.match 從頭開始匹配,相當于search中的正則表達式加上^
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 返回一個元祖,返回第二個元素是替換的次數
ret = re.subn('\d+','H','luban34cheng21an89') print(ret)
三.re模塊的進階
1.compile 節省你使用正則表達式解決問題的時間,編譯正則表達式,編譯成字節碼,在多次使用的過程中,不會多次編譯
ret = re.compile('\d+') # 已經完成編譯 print(ret) res = ret.findall('luban34cheng21an89') print(res) res = ret.search('1233asd魯班七號21313') print(res.group())
2.finditer 節省你使用正則表達式解決問題的空間
ret = re.finditer('\d+','1233asd魯班七號21313') for i in ret: print(i.group())
四.總結
findall 返回列表,找所有的匹配項
search 匹配就返回一個變量,通過group取匹配到的第一值,不匹配就返回None,group會報錯
match 相當于search的正則表達式中加了一個'^'
split 返回列表,按照正則規則切割,默認匹配到的內容會被切掉
sub/subn 替換,按照正則規則去尋找要被替換的內容,subn返回元祖,第二個值是替換的次數
compile 編譯一個正則表達式,用這個結果去search,match,fildall,finditer 能夠節省時間
finditer 返回一個迭代器,所有的結果都在這個迭代器中,需要通過循環+group的形式取值 能夠節省內存
關于如何在Python中使用re模塊就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。