正則表達式能夠包含一些標誌修飾符來控制匹配模式,用在正則表達式處理函數中的flag參數中,爲可選參數。正則表達式
表示使匹配時,忽略大小函數
多行匹配,影響 ^ 和 $的行爲spa
使點(.)匹配包括換行在內的全部字符對象
這個模式下正則表達式能夠是多行,忽略空白字符,並能夠加入註釋。索引
如: re.I | re.M被設置成I和M標誌,字符串
content = 'My username is zeke999!'string
re.search(r'zeke\d{3}', content, re.I | re.M)ast
獲取匹配時使用的字符串對象object
>>> m = re.match(r'\d+','456abc')搜索
>>> m.string
'456abc'
匹配時使用的pattern對象,也就是匹配到內容的正則表達 式對象
>>> m
<_sre.SRE_Match object at 0x02C8FA68>
>>> m.re
<_sre.SRE_Pattern object at 0x02D4ECD0>
該屬性表示文本中正則表達式開始搜索的索引。值與Pattern.match()和Pattern.seach()方法中的同名參數相同
>>> m.pos
0
該屬性表示文本中正則表達式結束搜索的索引。值與Pattern.match()和 Pattern.seach()方法中的同名參數相同
>>> m.endpos
6
該屬性表示最後一個被捕獲的分組在文本中的索引。若是沒有被捕獲的分組,將爲None
>>> m = re.match(r'a(b)(c)d','abcdef')
>>> m.lastindex
2
該屬性表示最後一個被捕獲的分組別名。若是這個分 組沒有別名或者沒有被捕獲的分組,將爲None。
得到一個或多個分組截獲的字符串;指定多個參數時將以元組形式返回。group1能夠使用編 號也能夠使用別名;編號0表明匹配的整個子串;默認返回group(0)
實例:group函數傳多個參數
p = re.compile('(a(b)c)d')
m = p.match('abcd')
resTup = m.group(1,2,1)
print resTup
>>>('abc', 'b', 'abc')
以元組形式返回所有分組截獲的字符串。至關於調用group(1,2,…last)
返回指定的組截獲的子串在string中的起始索引(子串第一個字符的索引)。默認爲第0組,即整個字符串
返回指定的組截獲的子串在string中的結束索引(子串最後一個字符的索引)。group默認值 爲0,即整個字符串
該方法表示以元組的形式返回 (start(group), end(group)),即某個分組的匹配文字內容在被 匹配字符串的開始索引位置和結束索引位置
將匹配到的分組代入template中而後返回。template中能夠使用\id或\g<id>、\g<name> 引用分組,但不能使用編號0。\id與\g<id>是等價的;但\10將被認爲是第10個分組,若是 你想表達\1以後是字符'0',只能使用\g<1>0。
m = re.search(r'(\w+)! (\w+) (\w+)','HMan! How finny!') #將匹配的結果帶入 print m.expand(r'resut:\3 \2 \1')
>>> resut:finny How HMan
該函數的做用是,將全部匹配到而且指定了別名的分組,以別名爲key,匹配到的字串爲value, 存於字典中,而後返回這個字典。若是表達式中未設置別名分組,就會返回一個空字典
>>> m = re.search(r'(?P<num>\d+)(\w+)','78fd')
>>> m.groupdict()
{'num': '78'}