Java Matcher 클래스란?
java.util.regex.Matcher 클래스는 정규 표현식을 기반으로 다양한 매칭 작업을 수행하는 엔진 역할을 합니다. 이 클래스는 별도의 생성자가 제공되지 않으며, java.util.regex.Pattern 클래스의 matcher() 메서드를 호출하여 객체를 생성하거나 얻을 수 있습니다.
appendTail() 메서드의 역할
appendTail(StringBuffer sb) 메서드는 StringBuffer 객체를 매개변수로 받아, 마지막으로 매칭된 지점 이후의 입력 시퀀스 문자(남은 꼬리 부분)를 해당 버퍼에 추가합니다. 이 메서드는 주로 appendReplacement() 메서드와 함께 사용되어 문자열 치환 작업에서 마무리 처리를 담당합니다.
예제 코드
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AppendTail {
public static void main(String[] args) {
String str = "<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>";
// 굵은 글씨(b 태그) 내용을 매칭하기 위한 정규 표현식
String regex = "<b>(\S+)</b>";
// Pattern 객체 생성
Pattern pattern = Pattern.compile(regex);
// 컴파일된 패턴을 문자열에 적용
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
// 남은 입력 시퀀스를 StringBuffer에 추가
matcher.appendTail(sb);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
System.out.println("StringBuffer의 내용:
"+ sb);
}
}실행 결과
is example script StringBuffer의 내용: <p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>
핵심 정리
- Matcher 클래스: 정규 표현식 매칭 작업을 수행하는 엔진으로, Pattern 클래스의 matcher() 메서드를 통해 인스턴스를 얻습니다.
- appendTail() 메서드: 마지막 매칭 이후의 나머지 입력 문자열을 StringBuffer에 추가합니다.
- 활용 방안: appendReplacement()와 조합하면 반복문 없이도 효율적인 문자열 치환 작업을 구현할 수 있습니다.