1. 程式人生 > >Python正則表示式及match函式的用法

Python正則表示式及match函式的用法

正則表示式(Regular Expression)是使用單個字串來描述、匹配一系列語法規則的字串。簡稱RE。
RE是爬蟲的基礎模組,可以用於驗證電話號碼,身份證號,郵箱,使用者名稱和密碼,url地址等。

操作步驟

呼叫re模組(python內嵌的包)
import re
使用match或者search方法進行匹配操作
a=re.match(pattern,string,flags=0)
pattern 匹配規則模式
string 要匹配的字串
匹配到的資料通常使用group等方法來提取(字串格式),groups(所有分組元組格式)

import re
try:
    pattern=r'(\w+) (\w+)(?P<name>.)*'
string='青苔 asd123!!!' a=re.match(pattern,string) print('匹配成功,結果為:',a.group) except: print('匹配失敗!')

輸出—>匹配成功,結果為:青苔asd

match函式的屬性

string:匹配時使用的文字
re:匹配時使用的pattren物件
pos:文字中正則表示式開始搜尋的索引。值與 Pattern.match()和 Pattern.seach()方法的同名引數相同。
endpos: 文字中正則表示式結束搜尋的索引。值與 Pattern.match()和 Pattern.seach()方法的同名引數相同。
lastindex:

最後一個被捕獲的分組在文字中的索引。如果沒有被捕獲的分組,將為 None。
lastgroup: 最後一個被捕獲的分組的別名。如果這個分組沒有別名或者沒有被捕獲的分組,將為 None。

match函式的方法

group 函式,獲取一個或多個分組的字串。
start 函式,返回指定的組截獲的子串在 string 中的起始索引。
end 函式,返回指定的組截獲的子串在 string 中的結束索引。
span 函式,返回指定的組截獲的子串在 string 中的結束索引。
expand 函式,將匹配到的分組代入 template 中然後返回。

個人理解:match和search方法很相似,但search方法用來匹配字串中間的資料,而match方法只能從頭開始檢索。