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