You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则匹配独立的/home开头、mdl/res结尾的路径

解决正则匹配独立路径的问题

问题原因

你当前的正则/home.+(mdl|res)存在三个核心问题:

  • .+是贪婪匹配,会从第一个/home开始,一直匹配到字符串最后一个res,导致两个路径被合并成一个匹配项。
  • .会匹配包括空格在内的任意字符,无法限制在单个独立路径内。
  • re.findall默认返回正则中捕获分组的内容,而非整个匹配字符串,所以最终只输出了后缀res。

解决方法

使用以下正则表达式,实现独立匹配目标路径:

import re

target_str = "~/goofy.git$ /home/maria/L1-07-51.mdl /home/maria/L1-08-09.res"
matches = re.findall(r"/home\S+\.(?:mdl|res)", target_str)
print(matches)

输出结果:

['/home/maria/L1-07-51.mdl', '/home/maria/L1-08-09.res']

正则规则说明

  • /home:匹配路径的固定前缀
  • \S+:匹配一个或多个非空白字符,确保只匹配单个路径(不会跨空格)
  • \.:转义后的点号,匹配文件名中的后缀分隔符
  • (?:mdl|res):非捕获分组,匹配mdl或res后缀,避免re.findall只返回后缀内容

内容的提问来源于stack exchange,提问作者Mikke Mus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 01:54:58