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

正则表达式末尾匹配问题:如何匹配字符串末尾的日期格式

正则匹配字符串末尾日期:优先匹配长年份的解决方案

首先纠正你正则里的笔误:把分支里的d{4}改成\d{4},否则四位年份的分支完全不生效。

然后解决「优先匹配短年份」的问题:正则的分支匹配是从左到右依次尝试,当你把\d{2}放在\d{4}前面时,即使字符串末尾是四位年份,正则会先尝试匹配前两位数字作为年份,剩下的两位数字无法满足末尾的$,导致匹配失败。

修正后的正则应该把长年份分支放在前面:

\d{1,2}[-/]\d{1,2}[-/](\d{4}|\d{2})$

原理说明

  • 当字符串末尾是四位年份(如3/18/2023)时,正则会优先匹配\d{4}分支,刚好覆盖到字符串结尾,满足$的要求,匹配成功。
  • 当字符串末尾是两位年份(如3/18/23)时,\d{4}分支匹配失败,会自动尝试下一个分支\d{2},同样满足$的要求,匹配成功。

补充优化(可选)

如果你的目标日期前面可能有空白字符(比如示例字符串里日期前的空格),可以在正则开头加上\s*来匹配任意数量的空白,确保能定位到末尾的日期:

\s*\d{1,2}[-/]\d{1,2}[-/](\d{4}|\d{2})$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:27:22