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

使用正则表达式匹配2010年之后日期的问题咨询

分析与修正你的日期匹配正则表达式

首先,你的正则表达式.*_(201\d{5})_.*无法正常工作,主要有两个核心问题:

1. 位数不匹配

目标日期是8位数字(比如示例里的20201103),但你的正则捕获的是201\d{5}——也就是201加上5位数字,总共7位,长度差了一位,自然匹配不上目标日期段。

2. 年份范围限制过窄

201\d只能匹配2010-2019年的日期,但你的示例日期是2020年的,这个正则连你的测试字符串都无法命中,更别说覆盖2020及之后的年份了。


修正后的正则表达式

如果你的需求是匹配格式为YYYYMMDD且年份在2010年及之后的日期(不严格校验月份和日期的合法性,比如不排除2月30号这类无效日期,这在文件名匹配场景里通常足够),可以使用以下正则:

.*_((201[0-9]\d{4})|(20[2-9]\d{5}))_.*

各部分解释:

  • 201[0-9]\d{4}:匹配2010-2019年的日期(年份2010-2019,加上4位月日)
  • 20[2-9]\d{5}:匹配2020-2099年的日期(年份2020-2099,加上4位月日)
  • 外层的.*_..._.*确保日期段被下划线包裹,符合你给出的文件名格式。

如果你需要覆盖更长远的年份(比如2100年及之后),可以扩展为:

.*_((201[0-9]\d{4})|(20[2-9]\d{5})|(2[1-9]\d{6})|([3-9]\d{7}))_.*

测试验证

用你的示例字符串path/32632/SMCS1_20201103_051803_095_D.tif测试修正后的正则,会成功捕获20201103这个符合要求的日期段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:52:31