Python 常用模塊 re 使用方法詳解

這篇文章主要介紹了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 使用方法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章