정규표현식
문자열이 정해져 있는 형식(정규표현식 : Regular Expression)으로 구성되어 있는지 검증해야하는 경우가 있다. 예를 들어, 이메일, 전화번호를 사용자가 제대로 입력했는지 검증해야할 때 정규표현식과 비교한다.
작성 방법
API 문서 를 참조하면 되는데, 이해하기가 쉽지 않다. 간단히 말해서 정규 표현식은 문자 또는 숫자 기호와 반복 기호가 결합된 문자열이다.
기호 | 설명 |
---|---|
[] | 한 개의 문자 |
[abc] | a,b,c 중 하나의 문자 |
[^abc] | a,b,c 이외의 하나의 문자 |
[a-zA-Z] | a |
\d | 한 개의 숫자, [0-9]와 동일 |
\s | 공백 |
\w | 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 |
? | 없음 또는 한 개 |
* | 없음 또는 한 개 이상 |
+ | 한 개 이상 |
{n} | 정확히 n개 |
{n,} | 최소한 n개 |
{n,m} | n개에서 m개 까지 |
() | 그룹핑 |
정규 표현식을 작성하는데 기본적으로 알아 두어야할 기호들이다.
http://www.nextree.co.kr/p4327/ 에 기호에 대해서 잘 설명되어 있다.
전화번호
02-111-1111 , 010-1111-1111와 같은 전화번호를 위한 정규식이다.
기호 | 설명 |
---|---|
(02|010) | 02 또는 010 |
- | - 포함 |
\d{3,4} | 3자리 또는 4자리 숫자 |
- | - 포함 |
\d{4} | 4자리 숫자 |
이메일
example@aaa.xx과 같은 이메일을 위한 정규표현식이다.
기호 | 설명 |
---|---|
\w+ | 한 개 이상의 알파벳 또는 숫자 |
@ | @ |
\w+ | 한 개 이상의 알파벳 또는 숫자 |
| . |
\w+ | 한 개 이상의 알파벳 또는 숫자 |
|
|
여기서 \.
은 문자로서의 점을 말하고, .
은 모든 문자 중에서 한 개의 문자를 뜻한다.
Pattern 클래스
문자열을 정규 표현식으로 검증하는 기능은 java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 제공한다.
Last updated