的java java.util.regex包提供了各种类来找到在字符序列特定图案。
图案类此包的是正则表达式的编译表示。要使用这个类提供了两个方法,即一个字符串匹配一个正则表达式-
编译() -此方法接受表示一个正则表达式的字符串并返回Pattern对象的一个对象。
matcher() -此方法接受一个String值并创建一个matcher对象,该对象将给定的String与当前模式对象表示的模式匹配。
以下是以dd-MM-yyyy格式匹配日期的正则表达式:
^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
因此,为了验证该格式的日期字符串MM-DD-YYYY -
使用编译上述正则表达式编译()模式类的方法和检索模式对象。
使用上面获得的对象,通过传递所需的日期字符串作为参数来调用matcher()方法,并从该方法中检索Matcher对象。
匹配器类的比赛()返回true,在其他比赛的情况下,它返回false。调用来自前一步骤中获得的匹配对象上此方法。
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