Programming/JAVA / / 2024. 11. 11. 21:59

JAVA 정규표현식(Regex) 사용법

반응형

Java에서 정규표현식(Regex)은 텍스트 패턴을 정의하여 문자열을 검사하거나 매칭하는 데 사용됩니다. 정규표현식은 문자, 숫자, 특수문자 등 다양한 텍스트 패턴을 다룰 수 있어서 유효성 검사, 특정 텍스트 검색, 문자열 대체 작업에 자주 사용됩니다.

1. 정규표현식의 기본 구조

Java에서는 java.util.regex 패키지를 통해 정규표현식을 사용할 수 있습니다. 주요 클래스는 다음과 같습니다

  • Pattern : 정규표현식 패턴을 정의하고 컴파일하는 클래스입니다.
  • Matcher : Pattern 객체를 통해 생성되며, 특정 문자열에서 패턴을 찾고 매칭하는 역할을 합니다.
2. 기본 문법

 

  • .: 임의의 한 문자 (개행 제외)
  • *: 앞 문자가 0번 이상 반복
  • +: 앞 문자가 1번 이상 반복
  • ?: 앞 문자가 0번 또는 1번만 등장
  • []: 문자 클래스, 대괄호 안의 문자 중 하나와 일치 (예: [a-z]는 소문자 하나)
  • ^: 문자열 시작 부분과 매칭, 또는 문자 클래스에서의 부정 (예: [^a-z]는 소문자를 제외한 문자)
  • $: 문자열 끝과 매칭
  • |: 논리적 OR (예: (a|b)는 'a' 또는 'b'와 일치)
  • \d: 숫자와 매칭 (0-9)
  • \w: 영문자나 숫자 또는 _와 일치
  • \s: 공백 문자 (space, tab 등)와 일치
  • {n,m}: n부터 m번까지 반복 (예: a{2,4}는 'a'가 2~4회 등장)

 

3. Java에서 정규표현식 사용 예시

 

문자열의 패턴 일치 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.regex.Pattern;
import java.util.regex.Matcher;
 
public class RegexExample {
    public static void main(String[] args) {
        String pattern = "^[a-zA-Z0-9]{5,10}$"// 5~10자의 알파벳과 숫자로 이루어진 문자열
        String input = "Hello123";
        
        // Pattern과 Matcher 사용
        Pattern compiledPattern = Pattern.compile(pattern);
        Matcher matcher = compiledPattern.matcher(input);
        
        if (matcher.matches()) {
            System.out.println("패턴과 일치합니다.");
        } else {
            System.out.println("패턴과 일치하지 않습니다.");
        }
    }
}
cs

 

텍스트 검색과 대체

1
2
3
4
5
6
7
8
9
10
public class RegexReplaceExample {
    public static void main(String[] args) {
        String input = "My phone number is 010-1234-5678";
        String pattern = "\\d{3}-\\d{4}-\\d{4}";
        
        // 전화번호를 찾고 익명화 처리
        String result = input.replaceAll(pattern, "XXX-XXXX-XXXX");
        System.out.println(result);
    }
}
cs

 

4. 자주 사용하는 정규표현식 예시

 

 

  • 이메일 검증: ^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$
  • URL 검증: ^(http|https)://[\\w.-]+\\.[a-zA-Z]{2,}(\\S*)$
  • 전화번호: \\d{2,3}-\\d{3,4}-\\d{4}
  • 숫자만: ^\\d+$
5. 요약

 

정규표현식은 문자열 패턴을 처리할 수 있는 강력한 도구로, Java의 Pattern과 Matcher 클래스를 통해 효과적으로 사용할 수 있습니다. 이를 활용하여 문자열을 검사하고 변환하며, 필요에 따라 다양한 텍스트 데이터를 처리할 수 있습니다.

 

 

 

 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유