java正则表达式

求一匹配时间的正则表达式,时间格式为2010-09-12 13:23:43
要求能做到2月份不能出现29 30 31号

[url]http://wenku.baidu.com/view/2673f080d4d8d15abe234e74.html[/url]

你要的结果 并且包含相应的解释! :idea:

/((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/._])(10|12|0?[13578])([-\/._])(3[01]|[12][0-9]|0?[1-9]))|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/._])(11|0?[469])([-\/._])(30|[12][0-9]|0?[1-9]))|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/._])(0?2)([-\/._])(2[0-8]|1[0-9]|0?[1-9]))|(^([2468][048]00)([-\/._])(0?2)([-\/._])(29))|(^([3579][26]00)([-\/._])(0?2)([-\/._])(29))|(^([1][89][0][48])([-\/._])(0?2)([-\/._])(29))|(^([2-9][0-9][0][48])([-\/._])(0?2)([-\/._])(29))|(^([1][89][2468][048])([-\/._])(0?2)([-\/._])(29))|(^([2-9][0-9][2468][048])([-\/._])(0?2)([-\/._])(29))|(^([1][89][13579][26])([-\/._])(0?2)([-\/._])(29))|(^([2-9][0-9][13579][26])([-\/._])(0?2)([-\/._])(29) ))\s((20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$/

遇到日期格式的,不推荐用正则表达式,像楼上提供的正则表达式,你看了会不会崩溃?
推荐使用SimpleDateFormat去解析日期格式的字符串。例子我就不举了,JDK的文档里面就有。