패턴에 일치하는 문자 삭제

Java:
패턴에 일치하는 문자 삭제

How to: (방법)

Java에서 문자열 패턴을 삭제하는 간단한 방법은 replaceAll() 메소드를 사용하는 것입니다. 정규 표현식을 이용해 매치되는 모든 문자를 삭제할 수 있어요.

public class PatternDeletionExample {
    public static void main(String[] args) {
        String example = "Hello123 456World!";
        String pattern = "\\d+"; // 숫자에 매치되는 정규식 패턴
        String modified = example.replaceAll(pattern, "");

        System.out.println(modified); // "Hello World!"
    }
}

출력:

Hello World!

또 다른 예시:

public class SpecialCharsRemoval {
    public static void main(String[] args) {
        String example = "K-pop is $100% awesome!";
        String pattern = "[^a-zA-Z\\s]"; // 영어와 공백을 제외한 모든 문자에 매치
        String modified = example.replaceAll(pattern, "");

        System.out.println(modified); // "Kpop is  awesome"
    }
}

출력:

Kpop is  awesome

Deep Dive (심층 분석)

정규 표현식은 문장 안에서 특정 패턴을 찾는 강력한 방법입니다. 자바에서 PatternMatcher 클래스가 있지만 문자열 클래스 내내 편리한 메소드들이 많아 대부분의 경우 이를 사용합니다.

역사적으로 볼 때, 정규 표현식은 1950년대 후반 제안되었고, 1970년대에 Unix 환경에서 널리 퍼졌습니다. 자바에서는 주로 java.util.regex 패키지 안에 있는 클래스를 통해 이를 구현합니다.

문자 삭제 외에도 문자 대체나 분할 등에도 사용할 수 있습니다. 예를 들어, String[] words = sentence.split("\\s+");는 문장을 공백을 기준으로 나누는 코드입니다.

replaceAll()은 내부적으로 java.util.regex 패키지의 기능을 사용합니다. 문자열이 길고, 수행해야 할 정규식 작업이 많은 경우, 직접 PatternMatcher 클래스를 사용하는 것이 성능상 이점을 가질 수 있습니다.

See Also (참고 자료)