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

예제가 있는 Java의 패턴 flags() 메서드

<시간/>

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