面对正则表达式的问题
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 模式。
答案 0 :(得分:5)
让我们先来看看你的正则表达式。在您匹配{\s}+
的日期和时间之间。这意味着“字符{
,后跟空格/标签,后跟一个或多个}
的”。
将{\s}
替换为?:\s+
(与一个或多个空格/标签匹配的非捕获组),以便完整的正则表达式
^(\d{4})-(\d{2})-(\d{2})(?:\s+(\d{2}):(\d{2}):(\d{2}))?$
答案 1 :(得分:2)
{\s}+
错了。它应该是\s+
。花括号仅用作量词或文字。