Java - 정규표현식(Regular Expression)으로 한글 찾기

java.util.regex 패키지

Posted by Yan on April 16, 2021

Regular Expression

  • 일정한 조건 패턴에 일치하는 문자열을 찾기 위해서 사용
  • java.util.regex패키지 내의 Matcher 클래스와 Pattern 클래스로 사용

정규표현식 몇 가지

표현식 설명
. 임의의 한 문자를 의미. 글자가 반드시 하나여야 함
* 임의의 문자열을 의미. 공백도 문자 취급. .과 달리 복수개도 가능. 단, 앞에 어떤 문자(열)도 없는 경우는 사용이 불가능. 반드시 앞에 최소한의 한 문자가 있어야 함
[] 문자열 집합을 의미. 범위로 표현할 때는 - 사용
+ 바로 앞의 문자가 하나 이상 반복됨을 의미

해당 문자열 내 정규식 표현에 부합하는 표현이 있는지 찾기

  • 문자열.matches(정규표현식) : 정규식 표현과 일치하는 텍스트가 호출한 문자열 내에 있는 경우 true반환

한글 포함 여부 확인하기

1
2
3
4
5
if (eachWord.matches(".*[ㄱ-ㅎㅏ-ㅣ가-힣]+.*")) {
		// 각 글자가 한글 정규표현식에 부합하는지 확인 후
		hangul++;
		// 한글이라면 갯수를 센다
}
  • matches 는 string에 사용할 수 있는 메소드이다.
  • *은 맨 앞에 올 수 없기 때문에 앞에 .을 써준다.
  • [ㄱ-ㅎ]는 ㄱ부터 ㅎ까지
  • [ㅏ-ㅣ]는 ㅏ부터 ㅣ까지
  • [가-힣]는 한글 자모음을 조합하여 만들어낼 수 있는 모든 한글을 의미
  • +는 한글이 하나 이상 반복됨을 의미
  • .*는 한 글자 또는 문자열

정규식 패턴 오류 발생시 예외처리

1
2
3
4
catch (PatternSyntaxException e) {
    System.err.println("An Exception Occured");
    e.printStackTrace();
}

참고자료 정규표현식 한글 찾기