본문 바로가기

데이터 관리

조건에 맞는 문자열을 찾아줘! - PatternMatcher 사용하기

자바에서는 정규 표현식(Regular Expressions)를 사용하여 문자열이 특정 조건에 맞는지 여부를 확인할 수 있습니다. 하지만, 정규식 자체가 복잡하기에 간단한 조건을 확인할 때 사용하기엔 약간 무겁다는 느낌이 들 때도 있습니다.

간단한 조건의 문자열 일치를 검사하기 위해 안드로이드 SDK에서는 PatternMatcher 클래스를 제공합니다. PatternMatcher에서는 다음과 같은 세 종류의 조건을 검사할 수 있습니다.

PatternMatcher.PATTERN_LITERAL
지정된 검사 패턴과 입력된 문자열이 정확히 일치하는지 검사합니다.

PatternMatcher.PATTERN_PREFIX
지정된 검사 패턴의 앞부분이 입력된 문자열의 앞부분과 일치하는지 검사합니다.

PatternMatcher.PATTERN_SIMPLE_GLOB
간단한 정규 표현식으로 작성된 검사 패턴을 기반으로 입력된 문자열이 조건과 일치하는지 검사합니다. 정규 표현식 중 '*'와 '.'만을 지원합니다.

PatternMatcher의 다양한 검사 패턴을 바탕으로 여러 문자열에 대한 테스트를 수행한 결과는 다음과 같습니다.

1. PatternMatcher.PATTERN_LITERAL

검사 패턴 : com.androidhuman.example

검사 결과 :
  • com.androidhuman.example (일치)
  • com.androidhuman.example2 (불일치)
  • com.androidhumans.examples (불일치)


2. PatternMatcher.PATTERN_PREFIX

검사 패턴 : com.androidhuman.

검사 결과 :
  • com.androidhuman.example (일치)
  • com.androidhuman.example2 (일치)
  • com.androidhumans.examples (불일치)


3. PatternMatcher.PATTERN_SIMPLE_GLOB

검사 패턴 : com.*

검사 결과 :
  • com.androidhuman.example (일치)
  • com.androidhuman.example2 (일치)
  • com.androidhumans.examples (일치)
  • comaandroidhuman (일치)
  • net.androidhuman.examples (불일치)

이해를 돕기 위해 PatternMatcher의 다양한 모드 및 조건을 설정하고, 문자열의 조건 일치 여부를 확인하는 예제 애플리케이션을 첨부합니다. 예제 애플리케이션은 다음과 같이 패턴 문자열과 테스트할 문자열을 입력받을 수 있도록 구성되어있으며, 위의 모드 선택 Spinner를 통해 PatternMatcher의 모드를 선택할 수 있습니다.