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

如何在正则捕获组1中匹配任意顺序组合的季节词汇与年份

正则修改方案

你可以通过正向前瞻先分别定位季节和年份的位置,再将两者合并到同一个捕获组中,无需匹配两者中间的无关内容,修改后的正则如下:

((?=.*\b(autumn|spring|summer|winter)\b)(?=.*\b(\d{4})\b)\2 \3)

正则说明

  • 内层的两个正向前瞻(?=.*\b(autumn|spring|summer|winter)\b)和(?=.*\b(\d{4})\b)会分别扫描整个字符串,捕获到对应的季节值和4位年份值,不受两者出现顺序的影响
  • 外层的括号将拼接后的季节、年份内容整体包裹为捕获组1,直接输出两个目标内容的合并结果
  • 如果你需要兼容大小写不敏感的匹配,可以在正则开头加(?i)修饰符,写法为((?i)(?=.*\b(autumn|spring|summer|winter)\b)(?=.*\b(\d{4})\b)\2 \3)

匹配效果

对你给出的示例文本,捕获组1的输出结果如下:

  • autumn 2021
  • 2021 autumn
  • autumn 2021
  • autumn 2021

如果你的使用场景不支持正向前瞻,也可以用分支逻辑配合替换操作实现,匹配正则写为:

.*?(?:(autumn|spring|summer|winter)\D*(\d{4})|(\d{4})\D*(autumn|spring|summer|winter)).*

替换内容填$1$3 $2$4即可得到相同的合并结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:03