본문 바로가기
카테고리 없음

자바 정규 표현식 (Pattern, Matcher) 사용법 & 예제

by sftt 2023. 11. 30.

자바 정규 표현식 (Pattern, Matcher) 사용법 & 예제

1. 정규 표현식이란?

정규 표현식은 문자열의 패턴을 표현하는 문자열입니다. 문자열에서 원하는 패턴을 찾거나, 특정 문자열을 대체, 추출하는 등의 작업을 할 때 유용하게 사용됩니다. 자바에서는 java.util.regex 패키지의 PatternMatcher 클래스를 사용하여 정규 표현식을 처리할 수 있습니다.

2. Pattern 클래스

Pattern 클래스는 정규 표현식에 대한 패턴을 컴파일하고, 패턴을 사용하여 Matcher 객체를 생성하는 역할을 합니다.

2.1 패턴 컴파일

다음은 패턴을 컴파일하는 예제입니다. 정규 표현식을 컴파일하여 Pattern 객체를 생성합니다.

Pattern pattern = Pattern.compile("ab+c");

이 경우, ab+c라는 정규 표현식에 대한 패턴을 컴파일하여 Pattern 객체를 생성합니다.

2.2 Matcher 객체 생성

Pattern 객체를 사용하여 Matcher 객체를 생성하고, 이를 사용하여 문자열에서 패턴을 검색하는 등 다양한 작업을 수행할 수 있습니다.

Matcher matcher = pattern.matcher("abbc");

위 코드는 문자열 "abbc"에서 패턴 "ab+c"와 일치하는 부분을 찾기 위해 Matcher 객체를 생성하는 예제입니다.

3. Matcher 클래스

Matcher 클래스는 정규 표현식과 문자열 사이의 매칭을 수행합니다. 이 클래스를 사용하여 문자열에서 특정 패턴에 대한 작업을 수행할 수 있습니다.

3.1 부분 일치 검색

Matcher 객체의 matches() 메소드를 사용하여 문자열이 정규 표현식과 완전히 일치하는지 여부를 확인할 수 있습니다.

boolean isMatch = matcher.matches();

위 코드는 Matcher 객체의 matches() 메소드를 사용하여 문자열과 패턴이 완전히 일치하는지 확인하는 예제입니다.

3.2 부분 검색

Matcher 객체의 find() 메소드를 사용하여 문자열에서 패턴에 부분적으로 일치하는 부분을 검색할 수 있습니다.

boolean found = matcher.find();

위 예제는 문자열에서 패턴에 부분적으로 일치하는 부분을 검색하는 예제입니다.

3.3 추출 작업

Matcher 객체의 group() 메소드를 사용하여 정규 표현식과 일치하는 부분의 값을 추출할 수 있습니다.

String matchedString = matcher.group();

위 코드는 정규 표현식과 일치하는 부분의 값을 추출하는 예제입니다.

4. 예제

다음은 정규 표현식과 Pattern, Matcher 클래스의 사용 예제입니다.

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

public class RegexExample {
    public static void main(String[] args) {
        // 정규 표현식 패턴 컴파일
        Pattern pattern = Pattern.compile("[a-z]+");

        // Matcher 객체 생성
        Matcher matcher = pattern.matcher("abc 123 DEF");

        // 부분 검색
        while (matcher.find()) {
            // 추출 작업
            String matchedString = matcher.group();
            System.out.println(matchedString);
        }
    }
}

위 예제는 문자열 "abc 123 DEF"에서 정규 표현식 "[a-z]+"과 일치하는 부분을 추출하는 예제입니다. 실행 결과는 다음과 같습니다.

abc

5. 결론

이상으로 자바에서 정규 표현식을 처리하는 PatternMatcher 클래스의 사용법과 예제에 대해 알아보았습니다. 이를 통해 문자열에서 원하는 패턴을 검색하거나, 대체, 추출하는 등의 작업을 효과적으로 수행할 수 있을 것입니다.

댓글