Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 정규식 \p{InGreek} 문자 클래스로 그리스 문자 매칭하기

정규식에서 \p{InGreek}그리스(Greek) 문자 블록에 속한 모든 문자와 일치하는 POSIX 스타일의 문자 클래스입니다. 이 패턴을 활용하면 입력된 문자열에서 그리스 문자를 쉽게 찾거나 개수를 세거나, 특정 문자열에 그리스 문자가 포함되어 있는지 검증할 수 있습니다.

예제 1: 문자열에서 그리스 문자 개수 세기

아래 예제는 사용자로부터 문자열을 입력받아, 정규식 \p{InGreek}을 컴파일한 후 Matcher 객체를 통해 해당 문자열에 포함된 그리스 문자의 개수를 출력합니다.

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example1 {
   public static void main(String args[]) {
      // 사용자로부터 문자열 입력받기
      System.out.println("문자열을 입력하세요");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();

      // 정규식 정의
      String regex = "\\p{InGreek}";

      // 정규식 컴파일
      Pattern pattern = Pattern.compile(regex);

      // Matcher 객체 생성
      Matcher matcher = pattern.matcher(input);

      int count = 0;
      while(matcher.find()) {
         count++;
      }
      System.out.println("그리스 문자 개수: " + count);
   }
}

실행 결과

문자열을 입력하세요
sample text αγ ηθ ξψ
그리스 문자 개수: 6

예제 2: 문자열에 그리스 문자 포함 여부 확인

다음 예제는 ^.+\\p{InGreek}.+ 패턴과 matches() 메서드를 사용하여, 입력된 문자열에 그리스 문자가 하나 이상 포함되어 있는지 확인합니다. 조건에 맞으면 포함되었다는 메시지를, 그렇지 않으면 포함되지 않았다는 메시지를 출력합니다.

import java.util.Scanner;

public class Example {
   public static void main(String args[]) {
      // 사용자로부터 문자열 입력받기
      System.out.println("문자열을 입력하세요");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();

      // 정규식 정의 및 검사
      String regex = "^.+\\p{InGreek}.+";
      boolean result = input.matches(regex);

      if(result) {
         System.out.println("입력한 문자열에는 그리스 문자가 포함되어 있습니다.");
      } else {
         System.out.println("입력한 문자열에는 그리스 문자가 포함되어 있지 않습니다.");
      }
   }
}

실행 결과

문자열을 입력하세요
sample text αγ
입력한 문자열에는 그리스 문자가 포함되어 있습니다.

정리

\p{InGreek}은 유니코드 그리스 문자 블록(Α~Ω, α~ω 등)에 속한 문자만 대상으로 하며, 한글이나 영문자 등 다른 문자는 매칭하지 않습니다. 다국어 텍스트 처리, 입력값 유효성 검사, 특정 언어권 문자 필터링 등에 유용하게 활용할 수 있습니다.