如何在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

更新于:2023年12月05日

4K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告