如何在Java使用正则表达式来验证给定的日期格式,如MM-DD-YYYY?

的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
猜你喜欢