正則表達式是定義搜索模式的字符序列。一般這種模式被字符串搜索算法用於字符串上的「查找」或「查找和替換」操做,或者用於輸入驗證。
Re庫是python的標準庫,主要用於字符串匹配,調用方法:import re
re庫採用raw string類型來表示正則表達式,表示爲
r'text'
raw string是不包含對轉義符的再次轉義的字符串,總而言就是string會對字符轉義,而raw string不會,由於在正則表達中會出現轉義符號,因此避免繁瑣咱們使用raw stringpython
在一個字符串中搜索正則表達式的第一個位置,返回match對象正則表達式
舉例說明:算法
import re match = re.search(r'[1-9]\d{5}', 'BIT 100081') if match: print(match.group(0)) 結果爲100081
從一個字符串的開始位置起匹配正則表達式,返回match對象
參數同search函數
舉例說明:函數
import re match = re.match(r'[1-9]\d{5}', 'BIT 100081') print(match.group(0)) 結果會報錯,match爲空,由於match函數是 從字符串開始位置開始匹配,由於從開始位置沒有匹配到,因此爲空
搜索字符串,以列表類型返回所有能匹配的子串
參數同search
舉例說明:spa
import re ls=re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084') print(ls) 結果爲['100081', '100084']
將一個字符串按照正則表達式匹配結果進行分割返回列表類型code
舉例說明 :對象
import re re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084') 結果['BIT', ' TSU', ' '] re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084', maxsplit=1) 結果['BIT', ' TSU100081']
搜索字符串,返回一個匹配結果的迭代類型,每一個迭代元素是match對象
參數同search
舉例說明 :ip
import re for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'): if m: print(m.group(0)) 結果爲 100081 100084
在一個字符串中替換全部匹配正則表達式的子串返回替換後的字符串字符串
舉例說明:string
import re re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084') 結果爲 'BIT:zipcode TSU:zipcode'
rst=re.search(r'[1-9]\d{5}', 'BIT 100081') 函數式的調用,一次性操做
pat=re.compile(r'[1-9]\d{5}') rst=pat.search('BIT 100081') 編譯後屢次操做
regex=re.complie(pattern,flags=0)
regex也有以上六種用法
Match對象是是一次匹配的結果,包含匹配的不少信息
如下是Match對象的屬性
如下是Match對象的方法
當正則表達式能夠匹配長短不一樣的多項時,返回哪個呢?Re庫默認採用貪婪匹配,即返回匹配最長的子串
最小匹配
只要長度輸出可能不一樣的,均可以經過在操做符後增長?變成最小匹配