如何在Java中使用正则表达式验证给定的日期格式,例如MM-DD-YYYY?
Java的java.util.regex包提供了各种类来查找字符序列中的特定模式。
此包的Pattern类是正则表达式的编译表示。要将正则表达式与String匹配,此类提供两种方法:
compile() − 此方法接受表示正则表达式的字符串,并返回Pattern对象的实例。
matcher() − 此方法接受一个String值,并创建一个matcher对象,该对象将给定的String与当前Pattern对象表示的模式匹配。
以下是匹配dd-MM-yyyy格式日期的正则表达式:
^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
因此,要验证MM-DD-YYYY格式的日期字符串:
使用Pattern类的compile()方法编译上述正则表达式,并检索Pattern对象。
使用上面获得的对象,通过将所需的日期字符串作为参数调用matcher()方法,并从此方法检索Matcher对象。
Matcher类的matches()方法在匹配的情况下返回true,否则返回false。在从上一步获得的matcher对象上调用此方法。
示例
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchingDate {
public static void main(String[] args) {
String date = "01/12/2019";
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Matching the compiled pattern in the String
Matcher matcher = pattern.matcher(date);
boolean bool = matcher.matches();
if(bool) {
System.out.println("Date is valid");
} else {
System.out.println("Date is not valid");
}
}
}
输出
Date is valid
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP