import re
res = re.findall('李.*?', '李杰和李莲英和李二棍子')
print(res) # ['李', '李', '李']
res = re.findall('李.+?', '李杰和李莲英和李二棍子')
print(res) # ['李杰', '李莲', '李二']
res = re.findall('李.??', '李杰和李莲英和李二棍子')
print(res) # ['李', '李', '李']6
res = re.findall('李.{2,3}?', '李杰和李莲英和李二棍子')
print(res) # ['李杰和', '李莲英', '李二棍']
res = re.findall('李.{2,}?', '李杰和李莲英和李二棍子')
print(res) # ['李杰和', '李莲英', '李二棍']
【二】re模块常用方法
【1】findall:查找结果
# 返回所有满足匹配条件的结果,放在列表里import re
num_str = 'ligo is good'
res = re.findall('o',num_str)
print(res)
# ['o', 'o', 'o']
【2】search:查找结果
# 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回Noneimport re
num_str = 'ligo is good'
res = re.search('o',num_str).group()
print(res) # o
【3】match:查找结果
# 同search,不过尽在字符串开始处进行匹配import re
num_str = 'ligo is good'
res = re.match('ligo', num_str).group()
print(res)
# ligo
【4】split:切割
import re
num_str = 'ligo'
res = re.split('[li]', num_str)
print(res)
# ['', '', 'go']# 先按'l'分割得到''和'igo',在对''和'igo'分别按'i'分割
【5】sub:制定个数替换
import re
num_str = 'ligo1scott2travis'# 将数字替换成'X',参数1表示只替换1个
res = re.sub('\d','X', num_str,1)
print(res)
# ligoXscott2travis#替换2个
res = re.sub('\d','X', num_str,2)
print(res)
# ligoXscottXtravis
【6】subn:替换全部
# 将数字替换成'X',返回元组(替换的结果,替换了多少次)import re
num_str = '4ligo1scott2travis3'
res = re.subn('\d','X', num_str)
print(res)
# ('XligoXscottXtravisX', 4)
【7】compile:编译正则表达式
import re
# 将正则表达式编译成为一个 正则表达式对象,规则要匹配的是4个数字
obj = re.compile('\d{4}')
# 正则表达式对象调用search,参数为待匹配的字符串
res = obj.search('aaa12345bbb1234').group()
print(res)
# 1234
【三】正则方法之优先级
【1】findall的优先级查询
import re
ret = re.findall("www.(baidu|taobao).com", "www.baidu.com")
# 这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可print(ret)
# ['baidu']#加上?:可以查询到完整的网址
ret = re.findall("www.(?:baidu|taobao).com", "www.taobao.com")
print(ret)
# ['www.taobao.com']
【2】split的有优先级查询
import re
# 没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项
ret = re.split("\d+", 'ligo1scott2travis')
print(ret)
# ['ligo', 'scott', 'travis']
ret = re.split("(\d+)", 'ligo1scott2travis')
print(ret)
# ['ligo', '1', 'scott', '2', 'travis']
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY