1. 常用函數(shù)方法
1.1 re.compile(pattern) 創(chuàng)建模式對象
In [1]: import re
In [2]: pat=re.compile('1')
In [3]: m=pat.search('123')
In [4]: print m
<_sre.SRE_Match object at 0x1208b48>
In [5]: print m.group(0)
1
In [6]: m=pat.search('234')
In [7]: print m
None
re.compile封裝出一個pattern對象,在這個對象的基礎(chǔ)上進行匹配硅急,效率較其他方式更高覆享,尤其是需要多次匹配時。
1.2 re.search(pattern, string) 在string中搜索pattern
In [1]: import re
In [2]: m = re.search('1','123')
In [3]: print m
<_sre.SRE_Match object at 0x10a6608>
In [4]: m = re.search('1', '234')
In [5]: print m
None
1.3 re.match(pattern, string) 從string左開始匹配
In [2]: m = re.match('1', '2341')
In [3]: print m
None
In [4]: m = re.match('1', '12341')
In [5]: print m
<_sre.SRE_Match object at 0x10bf9c0>
1.4 re.split(pattern, string) 根據(jù)pattern切分string, 返回列表
In [6]: re.split(r'\.','192.168.1.1')
Out[6]: ['192', '168', '1', '1']
In [7]: re.split(r'\W+', '12#$56&*90:')
Out[7]: ['12', '56', '90', '']
In [8]: re.split(r'\W+', '12#$56&*90:',maxsplit=1)
Out[8]: ['12', '56&*90:']
1.5 re.findall(pattern, string) 在string中搜索pattern,以列表返回匹配結(jié)果
In [12]: re.findall('1', '123')
Out[12]: ['1']
In [13]: re.findall('1', '234')
Out[13]: []
In [14]: re.findall('1', '12341')
Out[14]: ['1', '1']
1.6 re.sub(pat, repl, string) 在string中替換pat為repl
In [23]: re.sub('\d', '', '123abc456def')
Out[23]: 'abcdef'
2. group营袜, groups, groupdict方法與正則分組
group方法主要用于返回pattern匹配的分組對象撒顿,通過分組編號返回指定分組的匹配對象。group默認執(zhí)行索引0荚板,即返回整個匹配對象凤壁。group需要與正則表達式配合使用吩屹,在正則表達式中進行分組。
groups方法用于以元組形式返回所有分組對象
groupdict用于返回命名分組拧抖,需正則表達式進行命名分組
In [8]: m = re.search(r'^www\.(.*)\.(.*)$', 'www.baidu.com')
In [9]: print m.group()
www.baidu.com
In [10]: print m.group(0)
www.baidu.com
In [11]: print m.group(1)
baidu
In [12]: print m.group(2)
com
In [13]: m = re.search(r'(?P<key1>a)\w+(e)', 'abcde')
In [14]: print m.group()
abcde
In [15]: print m.groups()
('a', 'e')
In [16]: print m.groupdict()
{'key1': 'a'}