我正在尝试为yyyy +创建正则表达式,这意味着每年的正匹配大于yyyy年。 对于前。文字为2017+,必须与2017、2018、2019 ...匹配,但与2016不匹配。 我对此进行了研究,但几乎所有结果都是针对yyyy格式的。 为了提供上下文,数据以字符串形式存储在mongodb数据库中,格式为yyyy +,yyyy-或yyyy,我将使用正则表达式查询文档。
另外,正则表达式中是否可能存在另一个问题?
答案 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日期格式匹配$
->字符串结尾让我知道这是否是您想要的。另外,我们还提供了更多输入输出示例,因此我可以为您提供更合适的答案,以更好地帮助您。