Java基于正則實現(xiàn)的日期校驗功能示例
本文實例講述了Java基于正則實現(xiàn)的日期校驗功能。分享給大家供大家參考,具體如下:
private void checkDate() throws IOException {
// 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("");
int count = 0;
String fileName = ExcelGene.class.getResource("date.txt").getFile();
BufferedReader br = new BufferedReader(new FileReader(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 + "日");
}
}
}
}
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
SpringBoot快速整合SpringSecurity的詳細步驟(新手都會!)
日 Spring Security 是針對Spring項目的安全框架,也是Spring Boot底層安全模塊默認的技術(shù)選型,他可以實現(xiàn)強大的Web安全控制,下面這篇文章主要給大家介紹了關(guān)于SpringBoot快速整合SpringSecurity的詳細步驟,需要的朋友可以參考下2023-03-03
Java kafka如何實現(xiàn)自定義分區(qū)類和攔截器
這篇文章主要介紹了Java kafka如何實現(xiàn)自定義分區(qū)類和攔截器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
30分鐘入門Java8之默認方法和靜態(tài)接口方法學(xué)習(xí)
這篇文章主要介紹了30分鐘入門Java8之默認方法和靜態(tài)接口方法學(xué)習(xí),詳細介紹了默認方法和接口,有興趣的可以了解一下。2017-04-04
java實現(xiàn)學(xué)生成績信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了java實現(xiàn)學(xué)生成績信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07
Springboot如何優(yōu)雅的關(guān)閉應(yīng)用
這篇文章主要介紹了Springboot如何優(yōu)雅的關(guān)閉應(yīng)用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Java8?Stream?collect(Collectors.toMap())的使用
這篇文章主要介紹了Java8?Stream?collect(Collectors.toMap())的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05

