자바(Java)/JAVA 2SE

문자열을 패턴과 비교하여 일치를 확인하는 java.util.regex 패키지

본클라쓰 2009. 8. 28. 11:35

 

 java.util.regex 패키지는 정규표현(expression)또는 regex를 지원하는 패키지로 정규표현은 JDK1.4 버전 이후로 지원된다. 정규 표현은 지정된 패턴에 대해 문자 순서를 매칭하기 위한 클래들을 가지고 있는 패키지이다.

 

 

대표적인 java.util.regex 패키지의 클래스

  • Pattern: 정규 표현을 정의하는 클래스
  • Matcher: 패턴 클래스가 해석한 정규 표현을 기준으로 입력 소스의 문자열 패턴 일치 여부를 확인하는 클래스

 

 regex 패키지를 사용하여 문자열 패턴을 분석하는 방법은 아래와 같이 한다.

 

Pattern p = Pattern.compile(".*[ㄱ-ㅎ ㅏ-ㅣ 가-힣]+.*");    // 정규 표현식

Matcher m = p.matcher( this.input );   // 입력 소스와 패턴 비교 분석

 

boolean b = m.matches(); 

 

 Pattern클래스의 compile()메소드의 파라미터는 정규 표현식이다.(자바의 정규 표현식은 다른 문서를 참조) Matcher클래스의 matcher()메소드의 파라미터는 비교할 문자열이다. 문자열을 전달하고 Matcher클래스의 matchers()메소드를 사용하여 정규 표현식과 비교할 문자열을 비교하여 참/거짓을 반환받는다.

 

 위 방법보다 좀 더 간단하게 패턴을 비교하는 방법은 다음과 같다.

 

boolean bln = Pattern.matches(".*[ㄱ-ㅎㅏ-ㅣ가-힣]+.*", this.input);

 

 위에 사용 두 방법은 모두 같은 결과를 나타낸다. 정규 표현식에 대한 값은 api 를 참조.