1. 程式人生 > >re模組中match物件的方法和屬性

re模組中match物件的方法和屬性

 屬性和方法  說     明
 Pos  搜尋的開始位置
 Endpos  搜尋的結束位置
 String  搜尋的字串
 Re  當前使用的正則表示式的物件
 Lastindex  最後匹配的組索引
 Lastgroup  最後匹配的組名
 group(index=0)  某個分組的匹配結果。如果index等於0,便是匹配整個正則表示式
 groups()  所有分組的匹配結果,每個分組的結果組成一個列表返回
 Groupdict()  返回組名作為key,每個分組的匹配結果座位value的字典
 start([group])  獲取組的開始位置
 end([group])  獲取組的結束位置
 span([group])  獲取組的開始和結束位置
 expand(template)  使用組的匹配結果來替換模板template中的內容,並把替換後的字串返回

分組解析例項:
import re
p = re.compile(r"(abc)\1")
m = p.match("abcabcabc")
print m.group(0)
print m.group(1)
print m.group()

p = re.compile(r"(?P<one>abc)(?P=one)")
m = p.search("abcabcabc")
print m.group(0)
print m.group("one")
print m.groupdict().keys()
print m.groupdict().values()
print m.re.pattern

第二行:定義了一個分組"(abc)",在後面使用"\1"再次呼叫該分組。即compile()返回1個包含2個分組的正則表示式物件p.
第三行:p.match()對字串"abcabcabc"進行搜尋,返回一個match物件m
第四行:呼叫match物件的group(0)方法,將匹配整個表示式,輸出結果:abcabc
第五行:呼叫match物件的group(1)方法,返回第一次匹配成功的結果,輸出結果為:abc
第六行:預設情況下,返回分組0的結果,輸出結果:abcabc
第八行:給分組命令,"?P<one>"中的"one"表示分組的名稱。"(?P=one)"呼叫分組"one",相當於"\1"
第十行:輸出分組"one"的結果,輸出結果:abc
第十一行:獲取正則表示式中分組的名稱,輸出結果為:['one']
第十二行:獲取正則表示式中分組的內容,輸出結果為:['abc']
第十三行:獲取當前使用的正則表示式,輸出結果:(?P<one>abc)(?P=one)

轉:http://xukaizijian.blog.163.com/blog/static/170433119201111213111562/