ringa_lee2017-04-17 13:35:12
YYYY-MM-DD
最简单的写法
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
\d\d\d\d-\d\d-\d\d
\d{4}-\d{2}-\d{2}
改进
1 把年份前两位限定为19或20
(19|20)[0-9][0-9]-[0-9][0-9]-[0-9][0-9]
2 把月份限定为01到12
(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]
3 把日期限定为01到31
(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[01])
(19|20)[0-9][0-9]-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])
ringa_lee2017-04-17 13:35:12
其实我建议你用SimpleDateFormat
来parse一下,没有exception就是你想要的日期格式了。
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
s.parse(source)
PHPz2017-04-17 13:35:12
这样就可以匹配到日期字符串了
public class Q1010000002719930 {
public static void main(String[] args) {
matchDateString("2015-4-30"); //false
matchDateString("2015-04-30"); //true
matchDateString("2015-02-20"); //true
}
private static void matchDateString(String string) {
Pattern pattern = Pattern.compile("(\d){4}-(\d){2}-(\d){2}");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.find());
}
}