我发现的所有示例都在检查字符串是否遵循某种模式并且是数字,例如"\d{4}-\d{2}-\d{2}"
. 我想检查日期是否晚于给定日期,例如,检查日期是否遵循模式“yyyy-mm-dd”并且晚于“2009-03-01”。如何做到这一点?
问问题
329 次
3 回答
5
不要为此使用正则表达式。这就像试图用锯子敲钉子一样。
使用您的语言为您提供的任何日期解析并使用它来执行检查。
如果您需要从字符串中提取日期以执行此操作,请务必使用正则表达式,但仅限于该部分。
于 2012-08-07T17:57:59.377 回答
0
于 2012-08-07T17:59:43.587 回答
0
我绝对同意塞巴斯蒂安的回答,即正则表达式不是正确的工具。这里所说的是一个我认为可能有效的正则表达式:
2009-(?:03-(?:0[2-9]|[1-9]\d)|(?:0[4-9]|1\d)-\d\d)|(?:20[1-9]\d|2[1-9]\d\d|[3-9]\d{3})-\d\d-\d\d
这只是为了向您展示阅读此类问题的正则表达式解决方案有多么困难,您最好使用正则表达式提取日期,然后使用语言工具将其与目标日期进行比较。
于 2012-08-07T18:04:12.767 回答