使用Java正则表达式接受日期字符串(MM-dd-yyyy格式)?
以下是匹配 dd-MM-yyyy 格式日期的正则表达式。
^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
在字符串中匹配该格式的日期。
使用 Pattern 类的 compile() 方法编译上述表达式。
通过将所需的输入字符串作为参数传递给 Pattern 类的 matcher() 方法,获取 Matcher 对象。
Matcher 类的 matches() 方法如果匹配成功则返回 true,否则返回 false。因此,调用此方法来验证数据。
示例 1
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
String 类的 matches() 方法接受一个正则表达式,并将其与当前字符串进行匹配,如果匹配成功则返回 true,否则返回 false。因此,要验证给定的日期(字符串格式)是否为所需的格式 -
- 获取日期字符串。
- 通过将上述正则表达式作为参数传递给它,在其上调用 matches() 方法。
示例 2
import java.util.Scanner; public class Just { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter your name: "); String name = sc.nextLine(); System.out.println("Enter your Date of birth: "); String dob = sc.nextLine(); //Regular expression to accept date in MM-DD-YYY format String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$"; boolean result = dob.matches(regex); if(result) { System.out.println("Given date of birth is valid"); } else { System.out.println("Given date of birth is not valid"); } } }
输出 1
Enter your name: Janaki Enter your Date of birth: 26/09/1989 Given date of birth is not valid
输出 2
Enter your name: Janaki Enter your Date of birth: 09/26/1989 Given date of birth is valid
广告