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因此這個時候調用我要用一下格式spa

ret = re.search('\d+','asd魯班七號') if ret: print(ret.group())

  3.match 從頭開始匹配,至關於search中的正則表達式加上^code

ret = re.match('\d+','1233asd魯班七號21313') print(ret)

 二.字符串處理擴展blog

   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模塊的進階it

   1.compile 節省你使用正則表達式解決問題的時間,編譯正則表達式,編譯成字節碼,在屢次使用的過程當中,不會屢次編譯編譯

ret = re.compile('\d+') # 已經完成編譯
print(ret) res = ret.findall('luban34cheng21an89') print(res) res = ret.search('1233asd魯班七號21313') print(res.group())

   2.finditer 節省你使用正則表達式解決問題的空間class

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的形式取值 可以節省內存
相關文章
相關標籤/搜索