Python里面的正则表达式模块是re,大家常常看到两种语法形式,一种是类似re.match(), 另一种是p.match(),要想弄清楚他们的区别,就要从re的两种对象和正则表达式的三种角色说开去。
re模块里有两种对象
正则表达式运算里面有三种角色
我们可以很容易发现,正则表达式对象和正则表达式对应,匹配结果和匹配对象对应。待匹配字符串就是正则表达式方法的输入。
所以一个基本的正则表达式计算有如下两步:
import re
m = re.match('.*com', 'www.baidu.com') # 对应步骤1,参数1是正则表达式,参数2是待匹配字符串,结果是匹配对象
result = m.group() # 对应步骤2
print(result)
预编译正则表达式能够提升执行性能,使用的方法是re.compile()
import re
p = re.compile('.*com') # 预编译步骤,生成正则表达式对象
m = p.match('www.baidu.com') # 对应步骤1
result = m.group() # 对应步骤2
print(result)
match()的search()是re模块里最常用的两个方法,下面是他们的区别。