2012-08-07 85 views
0

所有我发现正在检查,如果该字符串遵循一定的模式,是数字,例如"\d{4}-\d{2}-\d{2}"的例子。我想检查日期晚于一个给定的日期,例如,以检查日期如下图案“YYYY-MM-DD”和晚于“2009-03-01”。如何实现这一目标?使用正则表达式来验证日期

+7

你不必使用某种形式的编程语言的能力?正则表达式对于这份工作来说确实不是最好的。 – Danny 2012-08-07 17:57:14

+1

您需要将日期字符串转换为数字或日期对象以进行比较。 – godspeedlee 2012-08-07 18:00:12

回答

5

不要使用正则表达式这一点。这就像试图用锯子敲钉子一样。

使用任何日期解析您的语言为您提供和使用进行检查。

如果你需要从字符串中提取日期,为了做到这一点,通过各种手段,使用正则表达式,但仅适用于部分。

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 

这只是向你展示它是多么困难阅读像这样的问题,正则表达式的解决方案,你好得多使用正则表达式来提取日期,然后使用语言工具将其与目标日期进行比较。