一聚教程网:一个值得你收藏的教程网站

热门教程

Java基于正则实现的日期校验功能示例

时间:2022-06-29 01:34:22 编辑:袖梨 来源:一聚教程网

 

 代码如下复制代码

privatevoidcheckDate()throwsIOException {

    // 4种分隔符

    String sep ="[-\./_]";

    // 年份

    String strPattern ="^(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 +=")$";

    Pattern p = Pattern.compile(strPattern);

    Matcher m = p.matcher("");

    intcount =0;

    String fileName = ExcelGene.class.getResource("date.txt").getFile();

    BufferedReader br =newBufferedReader(newFileReader(fileName));

    String line =null;

    while((line = br.readLine()) !=null) {

      count++;

      if(line.trim().length() >0) {

        m.reset(line);

        if(!m.find()) {

          System.out.println(count +" "+ line);

        }else{

          String year = m.group(1);

          String month = m.group(4);

          month = month ==null? m.group(7) : month;

          month = month ==null? m.group(10) : month;

          String date = m.group(5);

          date = date ==null? m.group(8) : date;

          date = date ==null? m.group(11) : date;

          System.out.println(year +"年"+ month +"月"+ date +"日");

        }

      }

    }

}

 

热门栏目