#/usr/bin/python
#coding=utf-8
#@Time :2017/11/18 21:49
#@Auther :liuzhenchuan
#@File :match對象.py
import re
prog = re.compile(r'(?P<tagname>abc)(.*)(?P=tagname)')
result1 = prog.match('abclfjlad234sjldabc')
print(result1)
print(result1.groups())
print result1.group('tagname')
print(result1.group(2))
print(result1.groupdict())
>>>
<_sre.SRE_Match object at 0x027B6CC8>
('abc', 'lfjlad234sjld')
abc
lfjlad234sjld
{'tagname': 'abc'}
解釋:
- 我們可以看到result1已經由字符串轉換成了一個正則對象。
- resule.groups()可以查看出來所有匹配到的數據,每個()是一個元素,最終返回一個tuple
- group()既可以通過下標(從1開始)的方式訪問,也可以通過分組名進行訪問。
- groupdict只能顯示有分組名的數據
group([group1, …]):
獲得一個或多個分組截獲的字符串;指定多個參數時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫參數時,返回group(0);沒有截獲字符串的組返回None;截獲了多次的組返回最后一次截獲的子串。
groups([default]):
以元組形式返回全部分組截獲的字符串。相當於調用group(1,2,…last)。default表示沒有截獲字符串的組以這個值替代,默認為None。
groupdict([default]):
返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。