各位java大虾来看看俺的正则式错了吗?

String el="^(19|20)\d\d([-])(0[1-9]|1[012])([-])\2(0[1-9]|[12][0-9]|3[01])$"
我用这个来匹配yyyy-mm-dd的时间格式,自己写的,有错望指出来,在线(河蟹)等!

String el="^(19|20)\d\d([-])(0[1-9]|1[012])([-])(0[1-9]|[12][0-9]|3[01])$"

你中间的\2不知什么意思,去掉反正就好了

恩,去掉\2就可以正常验证了。

String el = "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"

这个基本上把闰年和2月等的情况都考虑进去了。不妨试下