python笔记:re模块

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'(?Pa)\w+(e)', 'abcde')

In [14]: print m.group()
abcde

In [15]: print m.groups()
('a', 'e')

In [16]: print m.groupdict()
{'key1': 'a'}

你可能感兴趣的:(python笔记:re模块)