Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

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 클래스의 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