正则匹配日期
匹配八位时间yyyyMMdd:
([1-2][0-9]{3}[0-1][0-9][0-3][0-9])
存在问题,没有判断大小月和闰年。
改进,增加多种判断可能,细分大小月与闰年的判断,且只判断1000年到2999年之间的日期。
(([12][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([12][0-9])(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)$
java正则使用
// 创建 Pattern 对象,再使用marcher对象进行校验
Pattern p = Pattern.compile("^[0-9]{2,4}");
boolean m = input.matches(r.matcher("01string").find());