어제 오늘 내일

[Java Matcher] replaceAll() - 정규식으로 문자열 치환하기 본문

IT/Java

[Java Matcher] replaceAll() - 정규식으로 문자열 치환하기

hi.anna 2025. 10. 5. 07:13

문자열에서 특정 패턴을 다른 문자열로 치환해야 할 때는 단순한 String.replace()만으로는 부족할 때가 많습니다. 정규표현식을 활용하면 훨씬 더 강력하게 문자열을 변환할 수 있으며, 이때 Matcher.replaceAll() 메소드를 사용합니다.

 

1. replaceAll() 메소드 개요

  • 메소드 시그니처
    public String replaceAll(String replacement)
  • 현재 Matcher가 가진 정규표현식과 일치하는 모든 부분 문자열을 replacement로 교체합니다.
  • 치환 시 $1, $2와 같이 그룹을 활용할 수도 있습니다.

 

2. 기본 사용 예제

import java.util.regex.*;

public class MatcherReplaceAllExample {
    public static void main(String[] args) {
        String input = "cat, dog, cat, bird";

        Pattern pattern = Pattern.compile("cat");
        Matcher matcher = pattern.matcher(input);

        String result = matcher.replaceAll("tiger");
        System.out.println(result);
    }
}

실행 결과

tiger, dog, tiger, bird

입력 문자열에서 "cat"을 모두 "tiger"로 변환했습니다.

 

3. 그룹을 활용한 치환 예제

import java.util.regex.*;

public class MatcherReplaceGroupExample {
    public static void main(String[] args) {
        String input = "2025-09-14";

        Pattern pattern = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");
        Matcher matcher = pattern.matcher(input);

        String result = matcher.replaceAll("$3/$2/$1");
        System.out.println(result);
    }
}

실행 결과

14/09/2025

정규식 그룹을 활용해 "YYYY-MM-DD" 형식을 "DD/MM/YYYY" 형식으로 변환했습니다.

 

 

4. 활용 사례

  • 문자열 내 특정 단어 또는 패턴 일괄 치환
  • 날짜, 전화번호, 우편번호 등의 포맷 변환
  • 민감 정보(이메일, 주민번호 등) 마스킹 처리

 

정리

Matcher.replaceAll() 메소드는 정규표현식 기반 문자열 치환을 가능하게 합니다. 단순 단어 교체부터 복잡한 포맷 변환까지 폭넓게 활용할 수 있으며, 그룹을 이용하면 더욱 정교한 변환이 가능합니다.

 

 

 

반응형
Comments