Please enable JavaScript to use regex101
/
^
r
e
g
e
x
[
\
-
_
]
?
1
0
1
$
/
i
Reg
ular
Ex
pressions
101
Upgrade to Pro
Enterprise
Regular Expression
/
(?<=\D|^)(?<year>\d{4})(?<sep>[^\w\s])(?<month>1[0-2]|0[1-9])\k<sep>(?<day>0[1-9]|[12][0-9]|(?<=11\k<sep>|[^1][4-9]\k<sep>)30|(?<=1[02]\k<sep>|[^1][13578]\k<sep>)3[01])(?=\D|$)
/
gm
Input 1
New
2020-01-01 2020-01-31 2020-02-29 2020-03-31 2020-04-30 2020-05-31 2020-06-30 2020-07-31 2020-08-31 2020-09-30 2020-10-31 2020-11-30 2020-12-31 2020-01-01 00:00:00,000 2020-01-01_00:00:00,000 2020-01-01-00:00:00,000 2020-01-01T00:00:00,000 2222-01-01 2222/11/22 2222.11.22 // Invalid dates 2020-00-01 2020-01-00 000-01-01 222-01-01 2020-1-1 2020-1-01 2020-01-1 2020-22-01 2020-01-33 2020-01-32 2020-02-30 2020-03-32 2020-04-31 2020-05-32 2020-06-31 2020-07-32 2020-08-32 2020-09-31 2020-10-32 2020-11-31 2020-12-32 a222-01-01 2a22-01-01 22a2-01-01 222a-01-01 2222-a1-01 2222-0a-01 2222-1a-01 2222-01-a1 2222-01-0a 2222-01-1a
Substitution
2020-01-01 2020-01-31 2020-02-29 2020-03-31 2020-04-30 2020-05-31 2020-06-30 2020-07-31 2020-08-31 2020-09-30 2020-10-31 2020-11-30 2020-12-31 2020-01-01 00:00:00,000 2020-01-01_00:00:00,000 2020-01-01-00:00:00,000 2020-01-01T00:00:00,000 2222-01-01 2222/11/22 2222.11.22 // Invalid dates 2020-00-01 2020-01-00 000-01-01 222-01-01 2020-1-1 2020-1-01 2020-01-1 2020-22-01 2020-01-33 2020-01-32 2020-02-30 2020-03-32 2020-04-31 2020-05-32 2020-06-31 2020-07-32 2020-08-32 2020-09-31 2020-10-32 2020-11-31 2020-12-32 a222-01-01 2a22-01-01 22a2-01-01 222a-01-01 2222-a1-01 2222-0a-01 2222-1a-01 2222-01-a1 2222-01-0a 2222-01-1a