JAVA/포스팅

자바 java.util.regex패키지

짜집퍼박사(짜박) 2023. 11. 15. 16:14

java.util.regex 패키지는 정규 표현식을 사용하여 문자열을 검색, 매치, 대체하는 기능을 제공하는 Java의 패키지입니다. 정규 표현식(Regular Expression 또는 RegEx)은 문자열의 패턴을 표현하는 강력한 도구로, 검색, 매치, 대체, 분할 등의 문자열 조작 작업에 유용합니다.

 

주요 클래스 및 인터페이스

 

1. Pattern 클래스

- 정규 표현식 패턴을 나타내는 클래스입니다.
- compile(String regex) 메서드를 통해 정규 표현식을 컴파일하여 Pattern 객체를 생성합니다.

import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        // 정규 표현식 패턴 생성
        Pattern pattern = Pattern.compile("ab+c");

        // 패턴을 사용하여 문자열 매치 확인
        Matcher matcher = pattern.matcher("abbc");
        boolean matches = matcher.matches();
        System.out.println(matches);  // true
    }
}

 

2. Matcher 클래스

- 입력 문자열에서 정규 표현식 패턴과 매치하는 부분을 찾기 위한 클래스입니다.
- Pattern.matcher(CharSequence input) 메서드를 통해 Matcher 객체를 생성합니다.

import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("ab+c");
        Matcher matcher = pattern.matcher("abbc");

        // find() 메서드를 사용하여 부분 매치 확인
        boolean findResult = matcher.find();
        System.out.println(findResult);  // true
    }
}

 

3. PatternSyntaxException 클래스

정규 표현식의 구문 오류를 나타내는 예외 클래스입니다.

import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        try {
            // 잘못된 정규 표현식으로 패턴 생성
            Pattern pattern = Pattern.compile("*");
        } catch (PatternSyntaxException e) {
            System.out.println("Pattern Syntax Exception: " + e.getMessage());
        }
    }
}

 

 

주요 메서드

 

1. matches() 메서드

전체 문자열이 정규 표현식과 일치하는지 여부를 반환합니다.

boolean matches = Pattern.matches("a*b", "aaaaab");  // true

 

2. split(CharSequence input) 메서드

정규 표현식에 따라 입력 문자열을 분할하여 문자열 배열로 반환합니다.

String[] parts = "apple,orange,banana".split(",");
// parts: ["apple", "orange", "banana"]

 

3. replaceAll(String replacement) 메서드

정규 표현식과 일치하는 모든 부분을 지정된 문자열로 대체합니다.

String replaced = "apple orange apple".replaceAll("apple", "banana");
// replaced: "banana orange banana"

 

4. group() 메서드

- 매치된 부분 중에서 그룹을 가져옵니다.
- 그룹은 괄호로 묶인 부분을 의미합니다.

Pattern pattern = Pattern.compile("(\\d+)-(\\d+)");
Matcher matcher = pattern.matcher("123-456");

if (matcher.find()) {
    String group1 = matcher.group(1);  // "123"
    String group2 = matcher.group(2);  // "456"
}

 

그 외에도 다양한 메서드들이 있으며, 이를 통해 정규 표현식을 사용한 다양한 문자열 조작 작업을 수행할 수 있습니다.

정규 표현식은 강력하면서도 복잡한 패턴을 표현할 수 있는 도구로, 자바의 java.util.regex 패키지를 사용하여 문자열을 처리하는 데 유용하게 활용됩니다.

 

With ChatGPT