
6.其他re.escape(pattern) 可以转义正则表达式中具有特殊含义的字符,比如:
.或者*,举个实际的案例:
re.escape(pattern)看似非常好用省去了我们自己加转义,但是使用它很容易出现转义错误的问题,所以并不建议使用它转义,而建议大家自己手动转义!
re.purge 函数作用就是清除 正则表达式缓存,具体有什么缓存呢?我们来看看源码就知道它背地里干了 什么:

看方法大概是清除缓存吧,我们再来看看具体的案例:

猪哥在两个案例之间使用了re.purge函数清除缓存,然后分别比较前后案例源码里面的缓存,看看是否有变化!

7.总结同样,最后来一张思维导图总结一下re模块中的函数吧,需要高清图或者xmind文件的同学可在末尾获取 。


re模块异常re模块还包含了一个正则表达式的编译错误,当我们给出的正则表达式是一个无效的表达式(就是表达式本身有问题)时,就会raise一个异常!
我们来看看具体的案例吧:

上图案例中我们可以看到,在编写正则表达式中我们多写了一个后括号,这导致执行结果报错;而且是在其他所有案例执行之前,所以说明是在正则表达式编译时期就报错了 。
注意:这个异常一定是 正则表达式 本身是无效的,与要匹配的字符串无关!

正则对象Pattern关于
re模块的常量、函数、异常我们都讲解完毕,但是完全有必要再讲讲正则对象Pattern 。1. 与re模块 函数一致【python正则表达式使用实例 正则表达式测试工具】在
re模块的函数中有一个重要的函数compile函数,这个函数可以预编译返回一个正则对象,此正则对象拥有与re模块相同的函数,我们来看看Pattern类的源码 。
既然是一致的,那到底该用re模块还是正则对象Pattern?
而且,有些同学可能看过
re模块的源码,你会发现其实compile函数与 其他re函数(search、split、sub等等) 内部调用的是同一个函数,最终还是调用正则对象的函数!
也就是说下面 两种代码写法底层实现 其实是一致的:
# re函数re.search(pattern, text)# 正则对象函数compile = re.compile(pattern)compile.search(text)那还有必要使用compile函数得到正则对象再去调用search函数吗?直接调用re.search 是不是就可以?2. 官方文档怎么说关于到底该用re模块还是正则对象Pattern,官方文档是否有说明呢?

官方文档推荐:在多次使用某个正则表达式时推荐使用正则对象Pattern以增加复用性,因为通过re.compile(pattern)编译后的模块级函数会被缓存!
推荐阅读
- switch语句中case后面的表达式可以是什么
- Python循环结构中else用法 else的用法与位置结尾
- python自动化测试面试题 python测试代码怎么写
- python正则表达式使用实例 正则表达式测试工具有哪些
- python打造自动抢购/秒杀脚本 天天秒淘宝秒杀助手软件靠谱吗
- php采集安装教程 Python数据采集流程
- 怎么安装python python下载安装
- windows10配置python环境变量 windows配置python环境变量
- 测试环境搭建 教你搭建python开发环境
- python用什么软件编程好 常用python编程软件推荐
