0. 서론
가끔 입력받은 데이터의 입력 형식에 따른 유효성 검사가 필요한 경우가 있다.
이 때, 입력되어야 하는 형태가 일정하다면 정규표현식을 이용해 손쉽게 올바른 입력값만 걸러낼 수 있게 된다.
정규표현식은 특정 문자열의 규칙을 가지는 문자열의 집합을 표현하는 데 사용되는 언어를 의미한다.
1. 정규표현식 문법
1-1. 문자 클래스
문자 종류를 구분하는 데 사용한다.
정규식 패턴 | 설명 |
\w | 문자만 허용 (영어와 숫자) |
\W | 문자가 아닌 경우만 허용 |
\d | 숫자만 허용 |
\D | 숫자가 아닌 경우만 허용 |
\s | 공백 문자만 허용 (띄어쓰기, 들여쓰기, 줄바꿈) |
\S | 공백 문자가 아닌 경우만 허용 |
1-2. 어설션
행이나 단어의 시작, 끝을 지정하는 데 사용한다.
정규식 패턴 | 설명 |
^ | 문장의 시작 |
$ | 문장의 끝 |
1-3. 수량자
특정 문자 혹은 표현식의 수를 의미한다.
정규식 패턴 | 설명 |
? | zero or one |
* | zero or more |
+ | one or more |
{n} | n개 있는 |
{min,} | 최소 |
{min,max} | 최소, 최대 |
1-4. 그룹과 범위
정규식 문법을 그룹화하거나 범위를 지정할 때 사용한다.
정규식 패턴 | 설명 |
() | 그룹 |
[] | 문자셋 |
[^] | 부정 문자셋 |
| | 패턴 안에서의 or 연산 |
2. 자주 사용하는 정규 표현식
정규표현식 | 설명 |
^[0-9]*$ | 숫자 |
^[a-zA-Z]*$ | 영문자 |
^[가-힣]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | 이메일 |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 전화번호 |
\d{6} \- [1-4]\d{6} | 주민번호 |
3. JAVA에서의 정규표현식 사용법
정규표현식은 Pattern 클래스의 메서드로 쉽게 검증이 가능하다.
String PATTERN;
boolean check;
PATTERN = "^[가-힣]+\\d?$";
check = Pattern.matches(PATTERN, "가"); //true
check = Pattern.matches(PATTERN, "가1"); //true
check = Pattern.matches(PATTERN, "가12"); //false
PATTERN = "^[가-힣]*-...~\\d{2}$";
check = Pattern.matches(PATTERN, "가-ABC~12"); //true
check = Pattern.matches(PATTERN, "-ABC~12"); //true
check = Pattern.matches(PATTERN, "가-AB~12"); //false
check = Pattern.matches(PATTERN, "가-ABC~1"); //false
4. 정규표현식 검증 사이트
작성한 정규표현식의 테스트할 수 있는 사이트이다.
https://www.regexplanet.com/advanced/java/index.html
참고
반응형