本篇文章帶給大家的內容是關於Python正規表示式和re庫的相關內容介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
正規表示式是定義搜尋模式的字元序列。通常這種模式被字串搜尋演算法用於字串上的「查找」或「尋找和取代」操作,或用於輸入驗證。
1. 正規表示式的語法
#. 表示任何單一字元
Re函式庫是python的標準函式庫,主要用於字串匹配,呼叫方法:import re
2.1. 正規表示式字串的型別
r'text'
#raw string是不包含對轉義符的再次轉義的字串,總而言就是string會對字元轉義,而raw string不會,因為在正規表示中會出現轉義符號,所以避免繁瑣我們使用raw string
2.2. Re函式庫主要功能函數
()在一個字串中搜尋正規表示式的第一個位置,傳回match物件
從字串的起始位置起符合正規表示式,傳回match物件
搜尋字串,以清單類型傳回全部能符合的子字串
將一個字串依照正規表示式符合結果分割,傳回清單類型
搜尋字串,傳回一個符合結果的迭代類型,每個迭代元素是match物件
在一個字串中取代所有符合正規表示式的子字串,並傳回替換後的字串
import re match = re.search(r'[1-9]\d{5}', 'BIT 100081') if match: print(match.group(0)) 结果为100081
2.2.2. re.match(pattern, string, flags= 0)
範例說明:
import re match = re.match(r'[1-9]\d{5}', 'BIT 100081') print(match.group(0)) 结果会报错,match为空,因为match函数是 从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空
範例說明:
import re ls=re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084') print(ls) 结果为['100081', '100084']
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']
2.2.5. re.finditer(pattern, string, maxsplit =0, flags=0)
舉例說明:
import re for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'): if m: print(m.group(0)) 结果为 100081 100084
import re re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084') 结果为 'BIT:zipcode TSU:zipcode'
2.3 Re函式庫的另一種等價用法(物件導向)
rst=re.search(r'[1-9]\d{5}', 'BIT 100081') 函数式的调用,一次性操作
pat=re.compile(r'[1-9]\d{5}') rst=pat.search('BIT 100081') 编译后多次操作
2.4 Re函式庫的Match物件
以下是Match物件的屬性
.pos 正規表示式搜尋文字的起始位置
.endpos 正規表示式搜尋文字的結束位置
以下是Match物件的方法
#.group(0) 取得符合後的字串
#.start() 匹配字串在原始字串的開始位置
.end() 匹配字串在原始字串的結束位置
.span() 傳回(.start(), .end())
當正規表示式可以符合長短不同的多項時,回傳哪一個呢? Re庫預設採用貪婪匹配,即傳回匹配最長的子字串
最小匹配
只要長度輸出可能不同的,都可以透過在運算子後面增加?變成最小匹配
#
以上是Python正規表示式和re庫的相關內容介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!