日期/年格式yyyy +或yyyy-的正则表达式

时间:2018-11-14 15:03:39

标签: regex

我正在尝试为yyyy +创建正则表达式,这意味着每年的正匹配大于yyyy年。 对于前。文字为2017+,必须与2017、2018、2019 ...匹配,但与2016不匹配。 我对此进行了研究,但几乎所有结果都是针对yyyy格式的。 为了提供上下文,数据以字符串形式存储在mongodb数据库中,格式为yyyy +,yyyy-或yyyy,我将使用正则表达式查询文档。

另外,正则表达式中是否可能存在另一个问题?

1 个答案:

答案 0 :(得分:2)

尽管这种任务不应仅由正则表达式来完成,而应由您选择的编程语言通过算术比较来完成。但是,仅出于学术目的,您可以编写这样的正则表达式,尽管有其他几种方法可以使用它,但我的做法是正面的。您可以尝试通过交替形成等于或大于2017或小于2017的各种数字来实现此目的。正如您的帖子中所述,我专门针对2017+写过此正则表达式。此正则表达式匹配等于或大于2017年的四个数字(如您的帖子中提到的yyyy)。

^(?![10]\d{3})(?!2(?=01[0-6]))(?!2(?=00\d))\d{4}$

说明:

  • ^->字符串开头
  • (?![10]\d{3})->负数,请确保数字不是以0或1后跟三位数开头的格式
  • (?!2(?=01[0-6]))->否定前瞻性,确保如果数字以2开头,则不应在其后接010至016
  • (?!2(?=00\d))->否定前瞻性,确保如果数字以2开头,则其后不应接000到009
  • \d{4}->精确匹配四位数字,以确保它与yyyy日期格式匹配
  • $->字符串结尾

Demo Here

让我知道这是否是您想要的。另外,我们还提供了更多输入输出示例,因此我可以为您提供更合适的答案,以更好地帮助您。