匹配yyyy-MM-dd日期格式的正则表达式

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

解释:

^:匹配行的开头
\d{4}:匹配四个数字,表示年份
-:匹配一个横杠
(0[1-9]|1[0-2]):匹配01到12的月份,0开头的要匹配两位数字,1开头的只需匹配一个数字
-:匹配一个横杠
(0[1-9]|[12]\d|3[01]):匹配01到31的日,0开头的要匹配两位数字,1或2开头的第二个数字可匹配0到9,3开头的第二个数字可匹配0或1
$:匹配行的结尾
该正则表达式可以匹配如下格式的日期:

2023-04-11
2023-01-01
2023-12-31
但不能匹配如下格式的日期:

23-04-11(年份不足四位)
2023-4-11(月份或日不足两位)
2023-02-29(二月没有29日)