Patter과 Matcher

Dami·2024년 10월 17일
0

JAVA

목록 보기
4/5
post-thumbnail

Java에서 정규 표현식을 사용하기 위해 제공되는 두가지 클래스

1. Pattern클래스

Pattern클래스란?

정규 표현식을 컴파일한 결과를 저장하는 객제
문자열 형태로 정의된 정규식을 Java 코드에서 사용할 수 있는 객체로 변환

주요 Method

  • compile(String regex) : 정규식을 컴파일 해 Pattern 객체를 생성
  • matcher(CharSequence input) : 입력 문자열을 Pattern과 비교할 수 있는 Matcher 객체를 반환

사용 방법

import java.util.regex.Pattern;

public class PatternExample {
    public static void main(String[] args) {
        // 1. 정규 표현식을 정의하고 컴파일
        String regex = "\\d+"; // 숫자(하나 이상)와 매칭되는 정규식
        Pattern pattern = Pattern.compile(regex);

        // 2. pattern 객체를 통해 matcher 만들기
        System.out.println("정규식이 컴파일되었습니다.");
    }
}
  • 참고 : \\d+는 숫자로만 이루어진 문자열을 찾는 정규식

결론 : Pattern은 정규식을 객체로 변환

2. Matcher 클래스

Matcher 클래스란?

Pattern과 입력 문자열을 매칭하는데 사용
Matcher 객체를 사용하면 문자열에서 정규식에 맞는 부분을 찾거나, 매칭된 값을 추출할 수 있다

주요 Method

  • find() : 입력 문자열에서 정규식에 맞는 다음 부분이 있는지 확인
  • group() : 매칭된 그룹(부분 문자열)을 반환
  • matches() : 입력 문자열 전체가 정규식과 일치하는 지 검사
  • lookingAt() : 문자열의 첫 부분이 정규식과 일치하는지 확인

사용 방법

Pattern으로 정규식을 컴파일 해 객체를 만들고 ⟶ 그 Pattern을 사용해 문자열과 매칭을 수행하는 것이 Matcher

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


// 1. 정규식 패턴 정의 (숫자 추출용)
String regex = "\\d+";  // 하나 이상의 숫자와 매칭
Pattern pattern = Pattern.compile(regex); // Pattern 객체 생성

// 2. 매칭할 입력 문자열
String input = "123 apples and 456 oranges";

// 3. Pattern과 입력 문자열을 이용해 Matcher 객체 생성
Matcher matcher = pattern.matcher(input);

// 4. matcher.find()로 매칭되는 부분 찾기
while (matcher.find()) {
	// 매칭된 부분을 출력
	System.out.println("매칭된 숫자: " + matcher.group());
}

0개의 댓글

관련 채용 정보