Java java.math 패키지의 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