어제 오늘 내일

[Java Matcher] matches() - 문자열 전체가 패턴과 일치하는지 확인하기 본문

IT/Java

[Java Matcher] matches() - 문자열 전체가 패턴과 일치하는지 확인하기

hi.anna 2025. 10. 4. 00:45

문자열이 특정 정규표현식과 완전히 일치하는지 확인하고 싶을 때는 Matcher.matches() 메소드를 사용합니다. 부분 일치가 아닌 문자열 전체 검사를 수행한다는 점이 핵심입니다.

 

1. matches() 메소드 개요

  • 메소드 시그니처
  • public boolean matches()
  • 현재 Matcher 객체가 참조하는 문자열이 정규표현식 패턴과 전체적으로 일치하면 true, 그렇지 않으면 false를 반환합니다.

 

2. 기본 사용 예제

import java.util.regex.*;

public class MatcherMatchesExample {
    public static void main(String[] args) {
        String input1 = "12345";
        String input2 = "123abc";

        Pattern pattern = Pattern.compile("\\d+"); // 숫자만 허용
        Matcher matcher1 = pattern.matcher(input1);
        Matcher matcher2 = pattern.matcher(input2);

        System.out.println(matcher1.matches()); // true
        System.out.println(matcher2.matches()); // false
    }
}

예제 설명

  1. 정규표현식 \\d+는 하나 이상의 숫자를 의미합니다.
  2. "12345"는 숫자로만 이루어져 있으므로 true가 반환됩니다.
  3. "123abc"는 숫자 뒤에 문자가 포함되어 있으므로 전체 일치하지 않아 false가 반환됩니다.

 

3. 이메일 유효성 검사 예제

import java.util.regex.*;

public class EmailValidationExample {
    public static void main(String[] args) {
        String email = "user@example.com";
        String regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);

        if (matcher.matches()) {
            System.out.println("유효한 이메일 주소입니다.");
        } else {
            System.out.println("잘못된 이메일 주소입니다.");
        }
    }
}

실행 결과

유효한 이메일 주소입니다.

문자열 전체가 정규식과 일치하는지를 검사하기 때문에, 이메일, 전화번호, 우편번호와 같은 형식 검증에 자주 사용됩니다.

 

 

4. 활용 사례

  • 사용자 입력값 검증 (이메일, 전화번호, 비밀번호 등)
  • 데이터 형식이 올바른지 확인할 때
  • 전체 일치가 필요한 보안 로직 검사

 

정리

Matcher.matches() 메소드는 문자열이 정규표현식과 전체적으로 일치하는지 확인하는 데 사용됩니다. 부분 일치가 필요한 경우에는 find() 메소드를 사용해야 하며, matches()는 입력 검증 같은 시나리오에서 특히 강력하게 활용됩니다.

 

반응형
Comments