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();
}