Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

예제와 함께 배우는 Java Matcher의 matches() 메서드


Java Matcher 클래스란?

java.util.regex.Matcher 클래스는 정규 표현식을 기반으로 다양한 매칭 작업을 수행하는 엔진 역할을 하는 클래스입니다. 이 클래스에는 별도의 생성자가 없으며, java.util.regex.Pattern 클래스의 matcher() 메서드를 호출하여 Matcher 객체를 생성할 수 있습니다.

Matcher 클래스의 matches() 메서드는 대상 문자열이 정규 표현식으로 표현된 패턴과 일치하는지 검사합니다. 문자열이 패턴과 일치하면 true를 반환하고, 일치하지 않으면 false를 반환합니다. 단, 이 메서드가 true를 반환하려면 입력 문자열의 전체 영역(region)이 패턴과 완전히 일치해야 합니다.

주요 특징

  • 패턴은 Matcher 객체를 생성할 때 지정한 정규 표현식에서 비롯됩니다.
  • 부분 일치가 아니라 문자열 전체가 패턴과 일치해야 true를 반환합니다.
  • 부분 일치를 확인하려면 find(), 문자열 시작 부분의 일치를 확인하려면 lookingAt() 메서드를 사용할 수 있습니다.

예제 코드

다음 예제는 사용자로부터 문자열을 입력받아, 첫 번째 문자가 숫자인지 확인하는 프로그램입니다.

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchesExample {
    public static void main(String args[]) {
        // 사용자로부터 문자열 입력 받기
        System.out.println("Enter a String");
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        // 숫자로 시작하는 문자열을 찾기 위한 정규 표현식
        String regex = "^[0-9].*$";
        // 정규 표현식 컴파일
        Pattern pattern = Pattern.compile(regex);
        // Matcher 객체 가져오기
        Matcher matcher = pattern.matcher(input);
        // 일치 여부 확인
        boolean bool = matcher.matches();
        if(bool) {
            System.out.println("First character is a digit");
        } else {
            System.out.println("First character is not a digit");
        }
    }
}

실행 결과

Enter a String
4hiipla
First character is a digit

코드 설명

  • ^[0-9].*$ : 문자열의 시작(^)이 0~9 사이의 숫자이고, 그 뒤에 임의의 문자들이 이어지는 패턴을 의미합니다.
  • Pattern.compile(regex) : 정규 표현식을 컴파일하여 Pattern 객체를 생성합니다.
  • pattern.matcher(input) : 입력 문자열에 대한 Matcher 객체를 반환합니다.
  • matcher.matches() : 입력 문자열 전체가 패턴과 일치하는지 검사한 결과를 boolean 값으로 반환합니다.