PHP正则表达式在时间戳上发出preg_match()

时间:2013-05-29 07:00:39

标签: php regex

面对正则表达式的问题

2013-05-29 15:15:12字符串我与/^(\d{4})-(\d{2})-(\d{2})({\s}+(\d{2}):(\d{2}):(\d{2}))?$/匹配preg_match,但没有验证...它给予false

什么应该是regexp以匹配 2013-05-29 15:15:12 2013-05-29 模式。

2 个答案:

答案 0 :(得分:5)

让我们先来看看你的正则表达式。在您匹配{\s}+的日期和时间之间。这意味着“字符{,后跟空格/标签,后跟一个或多个}”。

{\s}替换为?:\s+(与一个或多个空格/标签匹配的非捕获组),以便完整的正则表达式

^(\d{4})-(\d{2})-(\d{2})(?:\s+(\d{2}):(\d{2}):(\d{2}))?$

DEMO

答案 1 :(得分:2)

{\s}+错了。它应该是\s+。花括号仅用作量词或文字。