You need to enable JavaScript to run this app. 如何调整正则使前置捕获组不匹配数字前的season前缀且兼容多season场景?
优惠活动
大模型
产品
解决方案
定价
更多

如何调整正则使前置捕获组不匹配数字前的season前缀且兼容多season场景?

正则调整方案

问题根源

原正则采用零宽正向预查(?<=season )做位置校验,这类零宽规则不会实际消耗匹配流中的字符,导致前面的贪婪匹配片段(.*)可以毫无阻碍地将最后一个作为分隔标记的season文本纳入自身捕获范围,最终媒体名的捕获结果会带上冗余的season内容。

调整后的正则

^(movie|tv) (.*) season ([0-9 ]+)

实现逻辑

  • 删掉原有的零宽预查结构,把分隔用的season(空格+season+空格)作为实际需要消耗的匹配片段直接写入正则,这部分内容不归属任何捕获组,从根源上避免被前面的(.*)吞噬。
  • 保留.*的默认贪婪匹配特性:正则引擎处理贪婪量词时,会先尽可能多占据字符,再逐步回溯调整直到整个规则完整匹配,因此会自动定位到字符串末尾附近最后一个能和后续 season ([0-9 ]+)匹配的位置,精准停在最后一个作为分隔标记的season前面。
  • 整个规则没有在(.*)中加入排除“season”关键词的限制,完全符合补充约束要求。

场景验证

  1. 常规场景输入tv game of thrones season 1 2 3,捕获结果为:
tv
game of thrones
1 2 3

和预期完全一致。
2. 媒体名含season的约束场景输入tv game of season season 1 2 3,捕获结果为:

tv
game of season
1 2 3

不会因为媒体名本身包含season文本出现匹配错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 10:36:05