Java基于正则实现的日期校验功能示例
本文实例讲述了Java基于正则实现的日期校验功能。分享给大家供大家参考,具体如下:
privatevoidcheckDate()throwsIOException{
//4种分隔符
Stringsep="[-\\./_]";
//年份
StringstrPattern="^(19[4-9]\\d|20\\d{2})"+sep;
strPattern+="(";
//月(1,3,5,7,8,10,12)
strPattern+="((0?[13578]|1[02])"+sep+"(0?[1-9]|[12][0-9]|3[01]))|";
//月(4,6,9,11)
strPattern+="((0?[469]|11)"+sep+"(0?[1-9]|[12][0-9]|30))|";
//月(2)
strPattern+="((2)"+sep+"(0?[1-9]|[12]\\d))";
strPattern+=")$";
Patternp=Pattern.compile(strPattern);
Matcherm=p.matcher("");
intcount=0;
StringfileName=ExcelGene.class.getResource("date.txt").getFile();
BufferedReaderbr=newBufferedReader(newFileReader(fileName));
Stringline=null;
while((line=br.readLine())!=null){
count++;
if(line.trim().length()>0){
m.reset(line);
if(!m.find()){
System.out.println(count+""+line);
}else{
Stringyear=m.group(1);
Stringmonth=m.group(4);
month=month==null?m.group(7):month;
month=month==null?m.group(10):month;
Stringdate=m.group(5);
date=date==null?m.group(8):date;
date=date==null?m.group(11):date;
System.out.println(year+"年"+month+"月"+date+"日");
}
}
}
}
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家java程序设计有所帮助。