어제 오늘 내일

[Java Pattern] compile() - 정규표현식 패턴 만들기 본문

IT/Java

[Java Pattern] compile() - 정규표현식 패턴 만들기

hi.anna 2025. 10. 3. 00:40

Java에서 정규표현식을 사용하려면 먼저 문자열 형태의 정규식을 패턴 객체로 변환해야 합니다. 이때 사용하는 메소드가 Pattern.compile() 입니다. 이 메소드를 통해 Pattern 객체를 생성한 뒤, Matcher를 이용해 문자열 검색이나 치환을 수행할 수 있습니다.

 

1. compile() 메소드 개요

  • 메소드 시그니처
  • public static Pattern compile(String regex) public static Pattern compile(String regex, int flags)
  • regex : 정규표현식 패턴 문자열
  • flags : 패턴 옵션 (대소문자 무시, 멀티라인 모드 등)

주요 옵션(flags 상수)

  • Pattern.CASE_INSENSITIVE : 대소문자 구분 없이 매칭
  • Pattern.MULTILINE : 여러 줄에서 ^, $ 인식
  • Pattern.DOTALL : .이 줄바꿈 문자까지 포함하도록 매칭

 

2. 기본 사용 예제

import java.util.regex.*;

public class PatternCompileExample {
    public static void main(String[] args) {
        String input = "Java, java, JAVA";

        Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(input);

        while (matcher.find()) {
            System.out.println("일치: " + matcher.group() + 
                               " (위치: " + matcher.start() + ")");
        }
    }
}

예제 설명

  1. Pattern.compile("java", Pattern.CASE_INSENSITIVE)
    → 정규식을 대소문자 구분 없이 컴파일합니다.
  2. matcher.find()
    → 입력 문자열에서 "Java", "java", "JAVA" 모두 매칭됩니다.
  3. 실행 결과:
일치: Java (위치: 0)
일치: java (위치: 6)
일치: JAVA (위치: 12)

즉, 대소문자에 상관없이 "java"라는 단어를 모두 찾아낼 수 있습니다.

 

 

3. 활용 사례

  • 대소문자 무시 검색 (Javajava)
  • 로그 파일 분석 (여러 줄에서 특정 패턴 찾기)
  • 정규식 기반 데이터 검증 (이메일, 전화번호 등)

 

정리

Pattern.compile() 메소드는 정규표현식을 실제 사용할 수 있는 Pattern 객체로 만드는 핵심 메소드입니다. 다양한 옵션을 함께 사용하면 유연한 문자열 검색 및 분석이 가능합니다.

 

 

반응형
Comments