200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 第11.3节 Python正则表达式搜索支持函数search match fullmatch findall finditer

第11.3节 Python正则表达式搜索支持函数search match fullmatch findall finditer

时间:2021-10-06 07:25:36

相关推荐

第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!

博客地址:/LaoYuanPython

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。