전화번호, 이메일, 비밀번호 등 여러 곳에 사용하는 정규식.
자주 사용하지 않다보니 쓸 때마다 찾게 되서 포스팅을 남겨놓는다.
기호 |
설명 |
[ ] |
한 개의 문자 그룹 |
\d |
숫자 ( 0 ~ 9 ) = [0-9] |
\D |
숫자를 제외한 모든 문자 |
\s |
공백 |
\S |
공백이 아닌 문자 |
\w |
알파벳 or 숫자 =
[0-9a-zA-Z] |
\W |
알파벳과 숫자를 제외한 문자
(특수문자?) |
^ |
문자열 시작 |
. |
한 개의 문자 |
| |
or 연산 |
? |
없음 or 한 개 |
* |
없음 or 한 개 이상 |
+ |
한 개 이상 |
$ |
문자열 종료 |
{n} |
n 개 |
{n,} |
n 개 이상 |
{n,m} |
n 개 이상, m 개 이하 |
( ) |
그룹핑 |
자바에선 아래와 같이 사용하면 boolean을 리턴해주니 이를 이용해서 유효성 검사를 하면 된다.
Pattern.matches("표현식", "검사 대상");
이를 이용해서 몇 가지 예제를 만들어보면 아래와 같다
표현식 |
해석 |
(010)-(\\d{3,4})-(\\d{4}) |
010으로 시작하는 전화번호
ex) 010-123-4567
ex) 010-1234-5678 |
(\\w+)@(\\w+)(\\.)(\\w+) |
이메일 양식
ex)id@tistory.com |
(\\w+)(\\.)(?i)(gif|png|jpg|jpeg)$ |
확장자가 gif, png, jpg, jpeg 중 하나인지
확인
ex) 1.gif
ex) 1.PNG |
표현식에 보면 위에 기호 설명에는 없는 것들이 보이는데
우선, \를 사용한 기호를 쓰기 위해서는 \\d 와 같이 앞에 \를 하나 더 붙여줘야 한다.
\는 특수문자를 의미하는 문자로 \d 같은 기호나 . 같은 특수문자를 사용하기 위해 붙여줘야 한다.
표현식 맨 마지막의 (?i)는 이후에 오는 문자는 대소문자 구분하지 않고 찾겠다는 의미이다.