第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调用Java(基于Ubuntu 18.04)
最近实习,需要使用Python编程,其中牵涉到一些算法的编写.由于不熟悉Python,又懒得从头学,而且要写的算法自己之前又用Java实现过,就想着能不能用Python调用Java.经过查找资料,方法 ...
- 重温Java泛型,带你更深入地理解它,更好的使用它!
1. 引言 jdk5.0中引入了Java泛型,目的是减少错误,并在类型上添加额外的抽象层. 本文将简要介绍Java中的泛型.泛型背后的目标以及如何使用泛型来提高代码的质量. 2. 为什么要用泛型? 设 ...
- 理解js参数
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...
- windows鼠标右键文件太多
1.网上找的(已经验证太难找,并没有多大用) 单击Windows的"开始"菜单,单击"运行",在"打开"框中键入"regedit& ...
- SpringBoot中BeanValidation数据校验与优雅处理详解
目录 本篇要点 后端参数校验的必要性 不使用Validator的参数处理逻辑 Validator框架提供的便利 SpringBoot自动配置ValidationAutoConfiguration Va ...
- shell编程之trap命令
trap command signal trap捕获信号(软中断),command一般是linux命令 若为' '表示发生陷阱时为空指令,'-'表示发生陷阱时采用缺省指令 signal: HUP(1 ...
- @AliasFor注解
@AliasFor注解 @AliasFor是一个注解,用于为注解属性声明别名. 代码如下:它有两个属性value和attribute @AliasFor注解注释了 自身,并且value和attribu ...
- Python_图解教程
说明:本教程用图片+源码讲解Python常见的问题,共勉! 1.Python包的调用 # coding:utf8 # from pakge.mymodel import test from bao ...
- js常用通用函数
//判断是否数字 function isNumber(str){ var n = Number(str); if (!isNaN(n)){ return true; }else{ return fal ...
- 查看php扩展
php -m