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

正则表达式条件特性理解及日期匹配规则调整技术求助

正则表达式调整方案

需求回顾

需调整现有正则,实现:

  • 允许匹配2811 16.12(起始日期连写、结束日期带分隔符)或28.11 16.12(两个日期均带分隔符)格式;
  • 拒绝2811 1612(两个日期均连写)或28111612(日期块间无分隔符)格式。

原正则:

\D*(?P<from_day>[12]\d|3[01]|0?[1-9])[.\s,■\-]*
(?P<from_month>1[0-2]|0?[1-9])[.\s,■\-]*
(?P<until_day>[12]\d|3[01]|0?[1-9])[.\s,■\-]*
(?P<until_month>1[012]|0?[1-9]).*|.+

调整后的正则

^\D*(?P<from_day>[12]\d|3[01]|0?[1-9])[.\s,■\-]*(?P<from_month>1[0-2]|0?[1-9])[.\s,■\-]+(?P<until_day>[12]\d|3[01]|0?[1-9])[.\s,■\-]+(?P<until_month>1[012]|0?[1-9]).*$

关键修改说明

  1. 强制日期块间的分隔符:将原正则中from_month与until_day之间的[.\s,■\-]*改为[.\s,■\-]+,确保两个日期块之间至少有一个指定分隔符(空格、点号、逗号、方块、短横线),直接拒绝28111612这类无分隔的连续日期。
  2. 强制结束日期的内部分隔:将until_day与until_month之间的[.\s,■\-]*改为[.\s,■\-]+,确保结束日期的日和月之间必须有至少一个分隔符,拒绝2811 1612这类结束日期连写的情况。
  3. 起始日期保留灵活格式:起始日期的日和月之间仍用[.\s,■\-]*,允许连写(如2811)或带分隔(如28.11)的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:05:30