다음은 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