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

Java正则表达式无法兼容校验yyyy-MM-dd格式日期如何解决

正则兼容调整方案

问题原因

原有正则的允许字符集未覆盖横杠-,且未对yyyy-MM-dd结构做专属匹配,直接把横杠加入通用字符集会导致非法带横杠的字符串被误匹配。

调整后正则

宽松兼容版(支持日期与其他格式自由组合)

^((\d{4}-\d{2}-\d{2})|([0-9A-WYZa-wyz -]+))([xX|]((\d{4}-\d{2}-\d{2})|([0-9A-WYZa-wyz -]+)))?$

严格约束版(仅允许标准yyyy-MM-dd格式出现横杠,避免非法串误放行)

^(\d{4}-\d{2}-\d{2}|[0-9A-WYZa-wyz ]+)([xX|](\d{4}-\d{2}-\d{2}|[0-9A-WYZa-wyz ]+))?$

调整说明

  • 新增\d{4}-\d{2}-\d{2}专属匹配分支,优先识别yyyy-MM-dd结构的标准日期,不会破坏原有规则对10JUN2022、2Mx1D、4M、1D、TEN、ONE|TEN等格式的匹配能力
  • 严格版不会匹配a-b-c这类随意带横杠的非法字符串,仅当字符串符合4位数字+横杠+2位数字+横杠+2位数字的日期结构时,才会允许横杠存在
  • 两个版本都支持分隔符x/X/|两侧的内容自由选择原有格式或新日期格式,比如2022-06-10|1D、4Mx2022-06-10这类组合场景也可正常校验

匹配效果验证

  • 原有格式全部正常匹配:10JUN2022、2Mx1D、4M、1D、TEN、ONE|TEN
  • 新增日期格式正常匹配:2022-06-10
  • 严格版会拦截非法带横杠串:202-06-10、A-B-C、2022-6-1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:27:21