一、 概述

re模块的函数search、match、fullmatch、findall、finditer都是用于搜索文本中是否包含指定模式的串,函数的参数都是一样的,第一个参数是模式串、第二个是搜索文本、第三个是搜索标记,但在功能上有区别,下面分别介绍这几个函数的功能。

二、 re. search函数

search扫描整个 搜索文本 找到模式串对应匹配样式的第一个位置,如果找到则返回一个相应的 匹配对象,否则返回None。关于匹配对象请参考《》;

案例:

print("发现了匹配字符串") if re.search("第[一-十][章回]",'第二回 悟彻菩提真妙理 断魔归本合元神 ') else print("未发现匹配字符串")
发现了匹配字符串
>>>

三、 re. match函数

re.match从搜索文本的开始位置查找模式串对应匹配样式,注意是必须是开始位置就能匹配。如果匹配到了正则表达式样式,就返回一个相应的 匹配对象,否则返回None。。

案例:

>>> print("发现了匹配字符串") if re.match("第[一-十][章回]",'第二回 悟彻菩提真妙理 断魔归本合元神 ') else print("未发现匹配字符串")
发现了匹配字符串
>>> print("发现了匹配字符串")if re.match("第[一-十][章回]",'西游记第二回 悟彻菩提真妙理 断魔归本合元神 ') else print("未发现匹配字符串")
未发现匹配字符串

四、 re. fullmatch函数

fullmatch要求的是整个搜索文本与模式串全完全匹配,如果完整匹配到了正则表达式样式,就返回一个相应的 匹配对象,否则返回None。

注意:如果搜索文本能找到匹配串但比匹配模式多出更多的内容也返回None。

案例:

>>> print("发现了匹配字符串") if re.fullmatch("第[一-十][章回]",'第二回 悟彻菩提真妙理 断魔归本合元神 ') else print("未发现匹配字符串")
未发现匹配字符串
>>> print("发现了匹配字符串") if re.fullmatch("第[一-十][章回](.)*",'第二回 悟彻菩提真妙理 断魔归本合元神 ') else print("未发现匹配字符串")
发现了匹配字符串
>>>

五、 re. findall函数

findall返回所有匹配的指定模式的文本子串到列表中,一个元素一个匹配串。

案例:

>>> re.findall("第[一-百][章回]",'第一回 悟彻菩提真妙理 断魔归本合元神 第二回 悟彻菩提真妙理 断魔归本合元神')
['第一回', '第二回']

六、 re. finditer函数

finditer从搜索文本的开始位置查找模式串对应匹配样式, 从左到右进行扫描,匹配按找到的顺序将匹配对象存储到迭代对象的当前对应元素中。

案例:

>>> l = re.finditer("第[一-十][章回]","第一回灵根育孕源流出 心性修持大道生 第二回 悟彻菩提真妙理 断魔归本合元神 第三回 四海千山皆拱伏 九幽十类尽除名")
>>> for i in l:print(i)
<re.Match object; span=(0, 3), match='第一回'>
<re.Match object; span=(19, 22), match='第二回'>
<re.Match object; span=(39, 42), match='第三回'>
>>>

老猿Python,跟老猿学Python!

博客地址:https://blog.csdn.net/LaoYuanPython


请大家多多支持,点赞、评论和加关注!谢谢!

第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer的更多相关文章

  1. 第11.5节 Python正则表达式搜索任意字符匹配及元字符“.”(点)功能介绍

    在re模块中,任意字符匹配使用"."(点)来表示, 在默认模式下,点匹配除了换行的任意字符.如果指定了搜索标记re.DOTALL ,它将匹配包括换行符的任意字符.关于搜索标记的含义 ...

  2. 第11.4节 Python正则表达式搜索字符集匹配功能及元字符”[]”介绍

    Python正则表达式字符集匹配表示是指搜索一个字符,该字符在给定的一个字符的集合中.元字符'['和']'是用于组合起来定义匹配字符集,匹配模式中使用 '['开头,并使用']'结尾来穷举搜索的字符可能 ...

  3. 第11.25节 Python正则表达式编译re.compile及正则对象使用

    一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...

  4. 第11.13节 Python正则表达式的转义符”\”功能介绍

    为了支持特殊元字符在特定场景下能表示自身而不会被当成元字符进行匹配出来,可以通过字符集或转义符表示方法来表示,字符集表示方法前面在<第11.4节 Python正则表达式搜索字符集匹配功能及元字符 ...

  5. 第11.15节 Python正则表达式转义符定义的特殊序列

    一. 引言 在前面<第11.13节 Python正则表达式的转义符"\"功能介绍>介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自 ...

  6. 第11.17节 Python 正则表达式扩展功能:命名组功能及组的反向引用

    一. 引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>介绍了组匹配模式,在一个正则表达式内可以定义多个组,每个组都有一个顺 ...

  7. 第11.6节 Python正则表达式的字符串开头匹配模式及元字符“^”(插入符、脱字符)功能介绍

    符号"^"为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求.这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而m ...

  8. 第11.10节 Python正则表达式的非贪婪模式的重复匹配:'*?', '+?',和 '??'

    在<第11.9节 Pytho正则表达式的贪婪模式和非贪婪模式>老猿简单介绍了贪婪模式和非贪婪模式,并说明'', '+',和 '?' 修饰符都是 贪婪的:它们在字符串进行尽可能多的匹配.有时 ...

  9. 第11.9节 Python正则表达式的贪婪模式和非贪婪模式

    在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "*". " ...

随机推荐

  1. 【SpringCloud】06.Eureka 总结

    1.两个注解: @EnableEurekaServer--在启动类上添加 @EnableDiscoveryClient或@EnableEurekaClient--启动类加 因为Eureka支持多种注册 ...

  2. 【转载】图解Transformer(完整版)!

    在学习深度学习过程中很多讲的不够细致,这个讲的真的是透彻了,转载过来的,希望更多人看到(转自-张贤同学-公众号). 前言 本文翻译自 http://jalammar.github.io/illustr ...

  3. 万字长文,详解推荐系统领域经典模型FM因子分解机

    在上一篇文章当中我们剖析了Facebook的著名论文GBDT+LR,虽然这篇paper在业内广受好评,但是毕竟GBDT已经是有些老旧的模型了.今天我们要介绍一个业内使用得更多的模型,它诞生于2010年 ...

  4. ubuntu mplayer "无法打开 VDPAU backend libvdpau ..."

    gnome mplayer 报错"无法打开 VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such ...

  5. day90:luffy:路飞项目前端部署

    目录 1.域名备案 2.域名解析 3.设置安全组 4.部署架构图 5.一些准备工作 6.docker 7.把前端项目通过nginx容器来运行 1.域名备案 腾讯云先要进行域名实名认证,实名认证三天后才 ...

  6. Python_Python处理JSON文件

    # Python处理Json对象 # Python处理Json对象 ''' json.loads() 将JSON字符串转为Python对象 json.dumps() 将Python对象转为JSON字符 ...

  7. Linux安装部署Redis(超级详细)

    前言 网上搜索了一筐如何在Linux下安装部署Redis的文章,各种文章混搭在一起勉强安装成功了.自己也记录下,方便后续安装时候有个借鉴之处. Redis版本 5.0.4 服务器版本 Linux Ce ...

  8. Dockerfile中如何自动回答标准输入的问题

    前言大家在用docker build制作自己的image的時候,都会用RUN命令来执行一些操作来安装某些必须的软件. 而一些软件的安装过程中会需要用户来输入yes/no或者y/n来确定一些东西后才能进 ...

  9. Hadoop大数据平台之HBase部署

    环境:CentOS 7.4 (1708  DVD) 工具:Xshell+Xftp 1. 使用xftp将hbase上传到/usr/local目录下,将其解压并重命名. 2. 配置conf目录下的hbas ...

  10. 企业级工作流解决方案(九)--微服务Tcp消息传输模型之客户端处理

    客户端启动 客户端启动主要做三件事情,1. 从配置文件读取服务调用配置,存储到全局对象中.2. 指定客户端编解码器工厂.3. 预连接,即预先建立与服务端的通信Chanel. [DependsOn(ty ...