第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer
一、 概述
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的更多相关文章
- 第11.5节 Python正则表达式搜索任意字符匹配及元字符“.”(点)功能介绍
在re模块中,任意字符匹配使用"."(点)来表示, 在默认模式下,点匹配除了换行的任意字符.如果指定了搜索标记re.DOTALL ,它将匹配包括换行符的任意字符.关于搜索标记的含义 ...
- 第11.4节 Python正则表达式搜索字符集匹配功能及元字符”[]”介绍
Python正则表达式字符集匹配表示是指搜索一个字符,该字符在给定的一个字符的集合中.元字符'['和']'是用于组合起来定义匹配字符集,匹配模式中使用 '['开头,并使用']'结尾来穷举搜索的字符可能 ...
- 第11.25节 Python正则表达式编译re.compile及正则对象使用
一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...
- 第11.13节 Python正则表达式的转义符”\”功能介绍
为了支持特殊元字符在特定场景下能表示自身而不会被当成元字符进行匹配出来,可以通过字符集或转义符表示方法来表示,字符集表示方法前面在<第11.4节 Python正则表达式搜索字符集匹配功能及元字符 ...
- 第11.15节 Python正则表达式转义符定义的特殊序列
一. 引言 在前面<第11.13节 Python正则表达式的转义符"\"功能介绍>介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自 ...
- 第11.17节 Python 正则表达式扩展功能:命名组功能及组的反向引用
一. 引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>介绍了组匹配模式,在一个正则表达式内可以定义多个组,每个组都有一个顺 ...
- 第11.6节 Python正则表达式的字符串开头匹配模式及元字符“^”(插入符、脱字符)功能介绍
符号"^"为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求.这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而m ...
- 第11.10节 Python正则表达式的非贪婪模式的重复匹配:'*?', '+?',和 '??'
在<第11.9节 Pytho正则表达式的贪婪模式和非贪婪模式>老猿简单介绍了贪婪模式和非贪婪模式,并说明'', '+',和 '?' 修饰符都是 贪婪的:它们在字符串进行尽可能多的匹配.有时 ...
- 第11.9节 Python正则表达式的贪婪模式和非贪婪模式
在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "*". " ...
随机推荐
- python爬虫02通过 Fiddler 进行手机抓包
我们要用到一款强大免费的抓包工具 Fiddler你可以到 https://www.telerik.com/download/fiddler去下载 一般情况下 我们通过浏览器来请求服务器的时候 是点对点 ...
- 企业中真实需要的集中管理软件SVN即Subversion版本控制
一.SVN基本概念 SVN是Subversion的简称,是一个自由开源的版本控制系统. checkout: 把整个项目源码下载到本地 update: 从服务器上更新代码,使本地达到最新版本 commi ...
- 转载:WIFI无线协议802.11a/b/g/n/ac的演变以及区别
WIFI无线协议802.11a/b/g/n/ac的演变以及区别 版权声明:版权所有,转载须注明出处. https://blog.csdn.net/Brouce__Lee/article/details ...
- git引入_版本控制介绍
八个字形容git技术: 公司必备,一定要会 一.git概念: git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理从小型到大型的项目 二.什么是版本控制: 版本控制是一种一个记录一个或若个 ...
- php 正则金额验证
$money_reg = '/^[1-9]\d*|^[1-9]\d*.\d+[1-9]$/';if(!preg_match($money_reg, $money)){ $this->ajaxEr ...
- 重构克隆rbd的数据
前言 之前写过一篇重构rbd的元数据的文章,讲的是如果rbd的元数据丢失了,数据还在的时候怎么恢复相关的元数据,但是实际使用的场景是,集群可能崩溃了,数据还在,osd无法拉起来,数据又很重要,需要把数 ...
- bluestore的osd自启动
前言 自启动相关的文章很多,有分析的很详细的文章,这里就不做赘述,本篇讲述的是什么情况下用,怎么用的问题 使用场景 一台机器的系统盘坏了,需要重装系统,相关的一些信息没有了,但是上面的数据盘还是在的, ...
- ceph-deploy 部署加密osd异常的问题
问题解析 问题 journal encryption with dmcrypt (Reno Rainz) 问题原文: I'm trying to setup a cluster with encryp ...
- hadoop启动脚本
记录一下一个简单的hadoop启动脚本 就是启动zookeeper集群,hadoop的HDFS和YRAN的脚本 start-cluster.sh 关于关闭的脚本,只需要顺序换一下,然后将start改为 ...
- scrapy学习之爬虫练习平台35
前言 上一篇文章中爬取了爬虫练习平台的所有 ssr 网站,都是比较简单的,没有反爬措施,这次来爬一下后面的 spa 系列. 环境准备 这里沿用了上篇文章的环境和设置,就不重新搭建环境了. 开始爬取 s ...