正则表达式是一种用来匹配字符串的强有力的武器。
它可以减少我们很多的时间用来做字符串的判断。
匹配规则说明:
实例:
re模块
Python提供re
模块,包含所有正则表达式的功能。
建议使用Python的r
前缀,就不用考虑转义的问题了。match()
方法判断是否匹配,如果匹配成功,返回一个Match
对象,否则返回None
。
import re
a = re.match(r'^\d{3}-\d{3,8}$', '010-12345')
print(a)
运行结果:
<re.Match object; span=(0, 9), match='010-12345'>
常用的表达方法如下:
test = '正则表达式'
if re.match(r'正则表达式', test):
print('ok')
else:
print('failed')
切分字符串
正常我们会用split()来拆分字符串:
b = 'a b c'.split(' ')
print(b)
运行结果:
['a', 'b', '', '', 'c']
这样拆分会将空格也拆分出来,不符合我们的要求:
下面我们使用正则表达式来拆分一下:
b = re.split(r'\s+', 'a b c')
print(b)
运行结果:
['a', 'b', 'c']
分组
除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能。用()
表示的就是要提取的分组(Group)
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
print(m)
print(m.group(0))
print(m.group(1))
print(m.group(2))
运行结果:
<re.Match object; span=(0, 9), match='010-12345'>
010-12345
010
12345
我们可以发现,group(0)
永远是原始字符串,group(1)
、group(2)
……表示第1、2、……个子串。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。