一、 概述

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. canvas基础[一]探究出初中数学知识

    何时用SVG何时用canvas SVG 矢量图,视觉清晰,文件小 <svg viewBox="0 0 100 100"> <circle cx="50& ...

  2. Linux 软件安装的三种方式

    Linux 软件安装的三种方式 1.yum ​ 语法格式: ​ yum -y install package.name ​ -y yes # 遇到提示自动输入yes ​ 案例: 安装ifconfig命 ...

  3. lvs负载简介,原理,常见使用案例及Keepalived高可用

    Lvs简介 基础概念 LVS(Linux Virtual Server)即Linux虚拟服务器,是由张文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中(2.6及以上版本内核) ...

  4. PF_PACKET&&tcpdump

    linux下抓包原理 linux下的抓包是通过注册一种虚拟的底层网络协议来完成对网络设备消息的处理权.当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,当抓包模块把自己伪装成一个网络 ...

  5. JavaScript高级程序设计(第四版) -- 随笔 -- 数组(未完)

    数组方法 .every() 与 .some() 传给两个个方法的函数都接收3个参数:数组元素.元素索引和数组本身. .every() -- 对于每一项都需要返回true,它才会返回true 若中途有一 ...

  6. SSTI Flask

    1.什么是SSTI?什么是Flask? ​ SSTI称为服务端模板注入,主要为Python.Java.PHP的框架在使用渲染函数时,由于代码不规范或者对于用户输入过于信任而导致产生了SSTI.类似于S ...

  7. 探究:nuget工具对不再使用的dll文件的处理策略

    背景介绍 nuget是.net平台有效的包管理工具,相信每个C#开发者对它都不陌生. 本文我们来探究一下nuget对不再使用的dll文件的处理策略,分为如下2个场景: 场景A:包A1.0原来包含New ...

  8. C++中new和malloc区别

    面试中new和malloc区别会被经常问到,审视了自己,发现不知道该怎么表达 整理一下: 1.从属性 new/delete是C++关键字,需要编译器支持: malloc/free是库函数,需要头文件支 ...

  9. 学好Flex布局并不容易

    1. Flex布局介绍 CSS的传统布局解决方案,基于盒状模型,依赖display属性.position属性.float属性,对于一些特殊的布局,例如垂直居中,往往要想很多hack的方法来解决. 20 ...

  10. FL Studio在线面板的作用

    FL Studio的在线面板主要是用来显示其自身与Image-Line公司相关的新闻.我们点击它后会看到一个新闻列表菜单,其中每一个项目都包含日期.标题.简介以及URL.详细的内容我们将在下文介绍,一 ...