正規表示式是定義搜尋模式的字串行。通常這種模式被字串搜尋演算法用於字串上的「查詢」或「查詢和替換」操作,或者用於輸入驗證。
re庫是python的標準庫,主要用於字串匹配,呼叫方法:import rere庫採用raw string型別來表示正規表示式,表示為
r'text'
raw string是不包含對轉義符的再次轉義的字串,總而言就是string會對字元轉義,而raw string不會,因為在正則表達中會出現轉義符號,所以避免繁瑣我們使用raw string
2.2.1. re.search(pattern, string, flags=0)
在乙個字串中搜尋正規表示式的第乙個位置,返回match物件
舉例說明:
import re
match = re.search(r'[1-9]\d', 'bit 100081')
if match:
print(match.group(0))
結果為100081
從乙個字串的開始位置起匹配正規表示式,返回match物件
引數同search函式
舉例說明:
import re
match = re.match(r'[1-9]\d', 'bit 100081')
print(match.group(0))
結果會報錯,match為空,因為match函式是
從字串開始位置開始匹配,因為從開始位置沒有匹配到,所以為空
搜尋字串,以列表型別返回全部能匹配的子串
引數同search
舉例說明:
import re
ls=re.findall(r'[1-9]\d', 'bit100081 tsu100084')
print(ls)
結果為['100081', '100084']
將乙個字串按照正規表示式匹配結果進行分割返回列表型別
舉例說明 :
import re
re.split(r'[1-9]\d', 'bit100081 tsu100084')
結果['bit', ' tsu', ' ']
re.split(r'[1-9]\d', 'bit100081 tsu100084', maxsplit=1)
結果['bit', ' tsu100081']
搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件
引數同search
舉例說明 :
import re
for m in re.finditer(r'[1-9]\d', 'bit100081 tsu100084'):
if m:
print(m.group(0))
結果為100081
100084
在乙個字串中替換所有匹配正規表示式的子串返回替換後的字串
舉例說明:
import re
re.sub(r'[1-9]\d', ':zipcode', 'bit100081 tsu100084')
結果為'bit:zipcode tsu:zipcode'
rst=re.search(r'[1-9]\d', 'bit 100081')
函式式的呼叫,一次性操作
pat=re.compile(r'[1-9]\d')
rst=pat.search('bit 100081')
編譯後多次操作
regex=re.complie(pattern,flags=0)
regex也有以上六種用法
match物件是是一次匹配的結果,包含匹配的很多資訊以下是match物件的屬性
以下是match物件的方法
當正規表示式可以匹配長短不同的多項時,返回哪乙個呢?re庫預設採用貪婪匹配,即返回匹配最長的子串
最小匹配
只要長度輸出可能不同的,都可以通過在操作符後增加?變成最小匹配
正規表示式簡記
eg bhi b就只會匹配到hi,而不會匹配到hit或者this之類包含hi的字串 eg 如果要求你填寫的qq號必須為5位到12位數字時,可以使用 d 其中表明匹配次數必須大於等於5小於等於12,而因為使用了 和 所以輸入的整個字串都要用來和 d來匹配,也就是說整個輸入必須是5到12個數字 家族 預...
正規表示式的簡記
此表是從runoob.com摘抄下來,用來自己以後查詢相關匹配之用,順便能夠幫到大家最好,我只是個搬運工。正規表示式的總結 1 正規表示式是由普通字元 字母和數字 以及元字元組成的文字模式。模式描述在搜尋文字時要匹配的乙個或者多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。正...
正規表示式r和re
coding utf 8 import re print a ws print r a nb r 一般用在正規表示式中,稱為原始字串,作用是將python語法中的反斜槓轉義給 取消,將其設定成為乙個普通的字串。可以解決python中的轉義字元和正規表示式中的轉義 字元之間的衝突問題。b python...