java的java.util.regex包提供了各种类来查找字符序列中的特定模式。该程序包的模式类是正则表达式的编译表示。
的匹配()的模式类的方法接受-
代表正则表达式的字符串值。
CharSequence类的一个对象,代表输入字符串。
调用时,此方法将输入字符串与正则表达式进行匹配。此方法返回一个布尔值,如果匹配则为true,否则为false。
import java.util.Scanner;
import java.util.regex.Pattern;
public class MatchesExample {
public static void main(String[] args) {
//获取日期
Scanner sc = new Scanner(System.in);
System.out.println("Enter date string in [dd/mm/yyy] format: ");
String date = sc.next();
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
//创建一个模式对象
boolean result = Pattern.matches(regex, date);
if(result) {
System.out.println("Date is valid");
} else {
System.out.println("Date is not valid");
}
}
}Enter date string in [dd/mm/yyy] format: 01/12/2019 Date is valid
Enter date string in [dd/mm/yyy] format: 2019-21-12 Date is not valid