Facing issue with regular expression
2013-05-29 15:15:12
string I am matching with /^(\d{4})-(\d{2})-(\d{2})({\s}+(\d{2}):(\d{2}):(\d{2}))?$/
with preg_match
but not validating ... its giving false
.
What should be regexp to match 2013-05-29 15:15:12 or 2013-05-29 pattern.
Let's take a look at your regex first. Between the date and the time you're matching {\s}+
. This means "the character {
, followed by a space/tab, followed by one or more }
's".
Replace {\s}
with ?:\s+
(a non capturing group matching one or more spaces/tabs) so the full regex is
^(\d{4})-(\d{2})-(\d{2})(?:\s+(\d{2}):(\d{2}):(\d{2}))?$
DEMO
The {\s}+
is wrong. It should be \s+
. The curly brackets are used as quantifiers or literals only.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With