java.regex의 패턴 클래스 패키지는 정규 표현식의 컴파일된 표현입니다.
컴파일() 이 클래스의 메소드는 정규식을 나타내는 문자열 값을 받아들이고 패턴을 반환합니다. 개체, 다음은 이 메서드의 서명입니다.
static Pattern compile(String regex)
이 메소드의 또 다른 변형은 플래그를 나타내는 정수 값을 허용합니다. 다음은 두 개의 매개변수가 있는 컴파일 메소드의 서명입니다.
static Pattern compile(String regex, int flags)
패턴 클래스는 각각 플래그를 나타내는 다양한 필드를 제공합니다.
아니요 | 필드 및 설명 |
---|---|
1 | CANON_EQ 두 문자가 표준적으로 동일한 경우에만 일치합니다. |
2 | CASE_INSENSITIVE 대소문자에 관계없이 문자를 찾습니다. |
3 | 댓글 패턴에 공백과 주석을 허용합니다. |
4 | DOTALL 도톨 모드를 활성화합니다. 어디 "." 메타 문자는 줄 종결자를 포함한 모든 문자와 일치합니다. |
5 | 리터럴 패턴의 리터럴 구문 분석을 활성화합니다. 즉, 입력 시퀀스의 모든 메타 문자와 이스케이프 시퀀스는 리터럴 문자로 처리됩니다. |
6 | 멀티라인 다중 라인 모드를 활성화합니다. 즉, 전체 입력 시퀀스가 단일 라인으로 처리됩니다. |
7 | UNICODE_CASE CASE_INSENSITIVE와 함께 사용할 때 유니코드 인식 대소문자 접기를 활성화합니다. 정규식을 사용하여 유니코드 문자를 검색하면 두 경우 모두 유니코드 문자가 일치합니다. |
8 | UNICODE_CHARACTER_CLASS 미리 정의된 문자 클래스 및 POSIX 문자 클래스의 유니코드 버전을 활성화합니다. |
9 | UNIX_LINES 이 플래그는 Unix 라인 모드를 활성화합니다. |
플래그() 이 클래스의 메소드는 현재 패턴에서 사용된 플래그를 반환합니다.
예시
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class COMMENTES_Example { 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])/ # For Month\n" + "(3[01]|[12][0-9]|0[1-9])/ # For Date\n" + "[0-9]{4}$ # For Year"; //Creating a Pattern object Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS); //Creating a Matcher object Matcher matcher = pattern.matcher(dob); boolean result = matcher.matches(); if(result) { System.out.println("Given date of birth is valid"); } else { System.out.println("Given date of birth is not valid"); } System.out.println("Flag used: "+ pattern.flags()); } }
출력
Enter your name: Krishna Enter your Date of birth: 09/26/1989 Given date of birth is valid Flag used: 4