2.6. 正则表达式
2.6.1. 是否匹配
In [1]: import re
In [2]: re.match("^\d{3}\-\d{3,8}",'010-12345')
Out[2]: <re.Match object; span=(0, 9), match='010-12345'>
In [3]: if re.match("^\d{3}\-\d{3,8}",'010-12345'):
...: print("match")
...: else:
...: print("not match")
...:
match
2.6.2. 切分字符串
In [4]: 'a b c'.split(' ')
Out[4]: ['a', 'b', '', '', 'c']
In [5]: re.split(r'\s+', 'a b c')
Out[5]: ['a', 'b', 'c']
2.6.3. 分组
In [8]: m= re.match("^(\d{3})\-(\d{3,8})",'010-12345')
In [9]: m.group(0)
Out[9]: '010-12345'
In [10]: m.group(1)
Out[10]: '010'
In [11]: m.group(2)
Out[11]: '12345'
2.6.4. 编译正则
如果一个正则表达式要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,接下来重复使用时就不需要编译这个步骤。
In [13]: import re
In [14]: re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
In [15]: re_telephone.match('010-12345').groups()
Out[15]: ('010', '12345')
In [16]: re_telephone.match('010-8086').groups()
Out[16]: ('010', '8086')