다음은 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 클래스의 match() 메서드는 일치가 발생하면 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 클래스의 match() 메서드는 정규식을 받아 현재 문자열과 일치시키고 일치하는 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. 따라서 주어진 날짜(문자열 형식)가 필요한 형식인지 확인하려면 -
- 날짜 문자열을 가져옵니다.
- 위의 정규식을 매개변수로 전달하여 해당 메서드에서 match() 메서드를 호출합니다.
예시 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