python正则表达式(4)--search方法
1.re.search函数
re.search 扫描整个字符串并返回第一个成功的匹配,如果匹配失败search()就返回None。
(1)函数语法:
re.search(pattern,string,flags=0)
函数参数说明:
- pattern 匹配的正则表达式
- string 要匹配的字符串
- flgs 标志位,用于控制正则表达式的匹配方式
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
group(num=0) 获取匹配结果的各个分组的字符串,group() 可以一次输入多个组号,此时返回一个包含那些组所对应值的元组。
- groups() 返回一个包含所有分组字符串的元组。
注意:如果未匹配成功,search()返回值为None,此时再使用group()、groups() 方法会报错。
应该先获取匹配对象,然后判断匹配对象是否非空,当非空时在使用group()、groups() 方法获取匹配结果。见实例2
(2)实例
例1
import re
print(re.search(r'How ', 'How are you').span())
#在起始位置匹配
print(re.search(r'are', 'How are you').span())
#不在起始位置匹配
输出:
(0, 4)
(4, 7)
例2
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import re
content = 'Hi zeke,how old are you'
result = re.search(r'\d+',content)
if result:
print(result.group())
else:
print('No match!')
rs = re.search(r'\w{4}',content)
if rs:
print(rs.group())
else:
print('No match!')
输出:
No match!
zeke
2.pattern.search方法
(1) 函数语法
pattern.search(string, pos=0, endpos=len(string))
函数作用:
这个方法将在字符串string的pos位置开始 尝试匹配pattern(pattern就是通过 re.compile()方法编译后返回的对象),如 果pattern匹配成功,无论是否达到结束位 置endpos,都会返回一个匹配成功后的Match对象;
如果匹配不成功,或者 pattern未匹配结束就达到endpos,则返回 None。
函数参数说明:
- string:被匹配的字符串
- pos:匹配的起始位置,可选,默认为0
- endpos:匹配的结束位置,可选,默认为 len(string)
3. re.search和pattern.search区别
re.search方法与pattern.search()方法 区别在于,它不能指定匹配的区 间pos和endpos两个参数
4. re.match方法与re.search方法的区别
- re.match只匹配字符串的开始,如果字符串开始不符合正则表达式, 则匹配失败,并返货None;
- re.search匹配整个字符串, 直到找到一个匹配,如果整个字符串都没匹配到,则返回None。
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16765274.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!