匹配YYYY-MM-DD格式的日期的正则表达式

2022-03-29 00:00:00 regex php preg-match

我在PHP中有一个正则表达式,它以YYYY-MM-DD格式查找日期

我拥有的是:[d]{4}-[d]{2}-[d]{2}

我正在使用preg_Match测试日期,问题是2009-11-10有效,但2009-11-1033434也有效。我做正则表达式已经有一段时间了,我如何确保它在正确的位置停止?我已尝试执行/([d]{4}-[d]{2}-[d]{2}){1}/,但返回相同的结果。

如有任何帮助,我们将不胜感激。


解决方案

您需要的是锚,特别是^$。前者匹配字符串的开头,后者匹配结尾。

我要指出的另一点是[]是不必要的。d保留其在字符范围之外的含义。

因此您的正则表达式应该如下所示:/^d{4}-d{2}-d{2}$/

相关文章