主要函式:match()、search()、compile()
compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。
語法格式為:
re.compile(pattern[, flags])引數:
pattern = re.compile(r'\d+') # 用於匹配至少乙個數字其中:m = pattern.match('one12twothree34four', 3, 10) # 從'1'的位置開始匹配
>>> m.group(0) # 可省略 0
'12'
>>> m.start(0) # 可省略 0
3>>> m.end(0) # 可省略 0
5>>> m.span(0) # 可省略 0
(3, 5)
在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。
注意:match 和 search 是匹配一次 findall 匹配所有。
語法格式為:
findall(string[, pos[, endpos]])引數:
#coding = utf-8和 findall 類似,在字串中找到正規表示式所匹配的所有子串,並把它們作為乙個迭代器返回。import re
pattern = re.compile(r'\d+') # 查詢數字
result1 = pattern.findall('wintrysec 123 google 456')
result2 = pattern.findall('wintrysec123google456', 0, 10)
print(result1)
print(result2)
re.finditer(pattern, string, flags=0)例子:
#coding=utf-8輸出結果:import re
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it:
print (match.group() )
12re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none32 43
3
函式語法:
re.match(pattern, string, flags=0)函式引數說明:
引數描述
pattern
匹配的正規表示式
string
要匹配的字串。
flags
標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等
匹配成功re.match方法返回乙個匹配的物件,否則返回none。
我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式。
匹配物件方法
描述group(num=0)
匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。
groups()
返回乙個包含所有小組字串的元組,從 1 到 所含的小組號
re.search 掃瞄整個字串並返回第乙個成功的匹配
函式語法:
re.search(pattern, string, flags=0)re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;
而re.search匹配整個字串,直到找到乙個匹配
檢索和替換
擴充套件查詢
Python re 正則模組
有些字元比較特殊,它們和自身並不匹配,而是會表明應和一些特殊的東西匹配,或者它們會影響到 re 其它部分的重複次數,它們叫元字元。其中 m 和 n 是十進位制整數。該限定符的意思是至少有 m 個重複,至多到 n 個重複。舉個例子,a b 將匹配 a b a b 和 a b 它不能匹配 ab 因為沒有...
python re 模組小結
前言 本人環境windows 7 64 位,python2.7 re是什麼 regular expression縮寫,意為正規表示式,是 python 的眾多模組之一 re用途 從文字中有選擇的批量抽取想要的文字碎片 re型別 分為dfa 確定的有窮狀態自動機 和 nfa 非確定的有窮狀態自動機 r...
Python re正則模組
對於比較複雜的字串處理任務,需要依靠正規表示式。首先需要匯入 re 模組 import re常用的元字元 符號含義 匹配除 n 和 r 之外的任何單個字元。匹配字串開始位置 匹配字串結束位置 前面的元素重複0次,1次或多次 前面的元素重複0次或1次 前面的元素重複1次或多次 前面的元素出現了n次 前...