而match函数是要从头开始匹配,而字符串开头多了个字母a,所以无法匹配,fullmatch函数需要完全相同,故也不匹配!
案例2:

案例2删除了text最开头的字母a,这样match函数就可以匹配啦,而fullmatch函数依然不能完全匹配!
案例3:

案例3中,我们只留下一段文字,并且与正则表达式一致;这时fullmatch函数终于可以匹配了 。
完整案例:

注意:查找 一个匹配项 返回的都是一个匹配对象(Match) 。
2.查找多个匹配项讲完查找一项,现在来看看查找多项吧,查找多项函数主要有:findall函数与finditer函数:
- findall: 从字符串任意位置查找,返回一个列表
- finditer:从字符串任意位置查找,返回一个迭代器

如果可能存在大量的匹配项的话,建议使用finditer函数,一般情况使用findall函数基本没啥影响 。
3.分割re.split(pattern, string, maxsplit=0, flags=0)函数:用pattern分开 string ,maxsplit表示最多进行分割次数,flags表示模式,就是上面我们讲解的常量!

注意:str模块也有一个 split函数 ,那这两个函数该怎么选呢?str.split函数功能简单,不支持正则分割,而re.split支持正则 。
关于二者的速度如何? 猪哥实际测试了一下,在相同数据量的情况下使用
re.split函数与str.split函数执行次数与执行时间对比图:
通过上图对比发现,1000次循环以内
str.split函数更快,而循环次数1000次以上后re.split函数明显更快,而且次数越多差距越大!所以结论是:在 不需要正则支持 且 数据量和数次不多 的情况下使用
str.split函数更合适,反之则使用re.split函数 。注:具体执行时间与测试数据有关!
4.替换替换主要有sub函数与subn函数,他们功能类似!
先来看看sub函数的用法:
re.sub(pattern, repl, string, count=0, flags=0)函数参数讲解:repl替换掉string中被pattern匹配的字符, count表示最大替换次数,flags表示正则表达式的常量 。
值得注意的是:sub函数中的入参:repl替换内容既可以是字符串,也可以是一个函数哦!如果repl为函数时,只能有一个入参:Match匹配对象 。

re.subn(pattern, repl, string, count=0, flags=0)函数与re.sub函数功能一致,只不过返回一个元组 (字符串, 替换次数) 。

5.编译正则对象compile函数 与 template函数将正则表达式的样式编译为一个 正则表达式对象 (正则对象Pattern),这个对象与re模块有同样的正则函数(后面我们会讲解Pattern正则对象) 。

而template函数与compile函数类似,只不过是增加了我们之前说的re.TEMPLATE模式,我们可以看看源码 。
推荐阅读
- switch语句中case后面的表达式可以是什么
- Python循环结构中else用法 else的用法与位置结尾
- python自动化测试面试题 python测试代码怎么写
- python正则表达式使用实例 正则表达式测试工具有哪些
- python打造自动抢购/秒杀脚本 天天秒淘宝秒杀助手软件靠谱吗
- php采集安装教程 Python数据采集流程
- 怎么安装python python下载安装
- windows10配置python环境变量 windows配置python环境变量
- 测试环境搭建 教你搭建python开发环境
- python用什么软件编程好 常用python编程软件推荐
