6. compile()
compile()方法可以将正则字符串编译成正则表达式对象,以便在后面的匹配中复用。示例代码如下:
import re
content1 = '2016-12-15 12:00'
content2 = '2016-12-17 12:55'
content3 = '2016-12-22 13:21'
pattern = re.compile('\d{2}:\d{-2}')
result1 = re.sub(pattern, '', content1)
result2 = re.sub(pattern, '', content2)
result3 = re.sub(pattern, '', content3)
print(result1, result2, result3)
假如这里有3个日期,我们想分别将3个日期中的时间去掉,这时可以借助sub()方法。该方法的第一个参数是正则表达式,但是这里没有必要重复写3个同样的正则表达式,此时可以借助compile()方法将正则表达式编译成一个正则表达式对象,以便复用。
运行结果如下:
2016-12-15 12:00 2016-12-17 12:55 2016-12-22 13:21
另外,compile()还可以传入修饰符,例如re.S等修饰符,这样在search()、findall()等方法中就不需要额外传了。所以,compile()方法还可以说是正则表达式做了一次封装,以便我们更好地复用。