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

如何提取含重复Model的文件路径中的Year(支持2015/2k15格式)?

我来帮你搞定这个正则匹配的问题!你遇到的情况是因为原来的正则太宽泛了,只要是Model/后面到下一个/之间的内容都会被匹配,所以第二种路径里的Model-Year就被误抓了。我们可以针对Year的特定格式来优化正则,精准提取目标字段。

解决方案1:基于Year格式的精准匹配

因为Year只有两种固定形式:20xx(四位数字,前两位为20)或者2kxx(以2k开头,后跟两位数字),我们可以直接把这两种格式作为匹配核心:

(?<=Model\/)(?:20\d{2}|2k\d{2})(?=\/)

拆解一下逻辑:

  • (?<=Model\/):正向预查,确保匹配内容的前缀是Model/
  • (?:20\d{2}|2k\d{2}):非捕获组,专门匹配两种Year格式:
    • 20\d{2}:匹配2015、2024这类四位数字年份
    • 2k\d{2}:匹配2k15、2k20这类缩写年份
  • (?=\/):正向预查,确保匹配内容的后缀是/

这个正则在两种路径下都能精准提取Year:

  • 对/Make/Honda/2015/car.jpg → 提取到2015
  • 对/Make/Tesla/Model3-2k18/photo.jpg → 提取到2k18

解决方案2:从路径末尾反向匹配(备选方案)

如果担心Model名称里可能包含类似Year的字符(概率极低),可以换个思路:Year一定在图片文件名的前一级目录,所以我们可以从路径末尾往前匹配:

\/(20\d{2}|2k\d{2})\/[^\/]+$

使用时通过捕获组(第一个分组)获取Year内容:

  • 对/Make/Ford/Focus-2k16/shot.jpg → 捕获组1得到2k16
  • 对/Make/BMW/2023/drive.jpg → 捕获组1得到2023

这个方法不依赖Model的位置,只要Year位于图片文件的上一级目录就有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:32:46