使用java正则表达式匹配日期

求一个正则表达式匹配日期类型
日期格式为 "yyyy-MM-dd",考虑到要符合多种格式,不受0的影响例如

"2018-1-1"

"2018-01-01"

"2018-001-002" //前面可以添加任意个0

可以忽略平年和闰年的影响,求大神给一个

^\d{4}-0*((1|3|5|7|8|10|12)-0*([1-9]|[1-2]\d|3[0-1])|(4|6|9|11)-0*([1-9]|[1-2]\d|30)|2-0*([1-9]|[1-2]\d))$