Java 입문 | java.util 패키지 | Matcher 클래스


java.util.rege.Matcher 클래스는 입력 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 판별할 때 주로 사용된다.

Matcher 메소드

메소드 설명
matches() 패턴이 전체 문자열과 일치할 경우 true를 반환한다.
boolean find() 패턴이 일치하는 경우 true를 반환하고, 그 위치로 이동한다. 여러개가 매칭되는 경우 반복 실행 가능하다.
boolean find(int start) start 위치 이후부터 매칭 검색을 수행한다.
String group() 매칭된 부분을 반환한다.
String group(int group) 매칭된 부분 중 group번 그룹핑 매칭 부분을 반환한다.
int groupCount() 패턴내 그룹핑한(괄호 지정) 전체 갯수를 반환한다.
int start() 매칭되는 문자열 시작 위치를 반환한다.
int start(int group) 지정된 그룹이 매칭되는 시작 위치를 반환한다.
int end() 매칭되는 문자열 끝 다음 문자 위치를 반환한다.
ind end(int group) 지정되 그룹이 매칭되는 끝 다음 문자 위치를 반환한다.

Matcher 예제

아래 코드는 소문자로 이루어진 단어만 받아와 표시하는 로직이다. 예를 들어 I, it.와 같이 대문자와 특수문자가 포함된 경우는 제외하고 표시한다.

package com.devkuma.basic.macher;

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

public class MatcherTutorial {
    
    public static void main(String[] args) {
        String regEx = "[a-z]*[a-z]";
        String text = "I never dreamed about success, I worked for it.";

        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

결과는 아래와 같다.

never
dreamed
about
success
worked
for
it