1. 常用函数方法
1.1 re.compile(pattern) 创建模式对象
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对象,在这个对象的基础上进行匹配,效率较其他方式更高,尤其是需要多次匹配时。
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) 根据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,以列表返回匹配结果
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默认执行索引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'}
网友评论