Python正则表达式--每日一点 match和search
简单的正则表达式大家都知道,但是复杂的表达式就不是那么容易了,每天弄懂一部分知识点就够了
今日知识点怎么使用,怎么返回什么
import re
if __name__ == '__main__':
bt = 'bat|bet|bit'
m = re.match(bt, 'bet')
if m is not None:
result = m.group()
print(result)
m = re.match(bt, 'batbet')
if m is not None:
result = m.group()
print(result)
m = re.match(bt, 'ggbet')
if m is not None:
result = m.group()
print(result)
# 控制台打印出来的结果为:
bet
bat
从上面的信息来看,python的 re 模块中的 match方法这种用法只能匹配出字符串开始是否包含指定的部分,而且只读取返回的结果只有一条数据,不知道大家理解了没有,没有理解可以将上面的代码直接复制运行,当然这句话也不完全对,上面代码如果换成这样的话就说的不对了
bt = '(bat).(bet).(bit)'
m = re.match(bt, 'batmbetubit')
if m is not None:
result = m.group(3)
print(result)
接下来一起看下 search
bt = 'bit'
m = re.search(bt, 'hfgkfkjbit')
if m is not None:
result = m.group()
print(result)
re中的search这个方法的就可以从一整句中查询是否包含需要的部分,而不仅仅的是查找开头有没有
a = "123abc456"
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0)) # 123abc456,返回整体
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1) ) # 123
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2)) # abc
print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3)) # 456
print("-"*50)
m = "(bet)...(bat)"
result = re.search(m, "betljhbat")
print(result.group(0)) # 返回整体
print(result.group(1)) # 返回bet
print(result.group(2)) # 返回bat
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)