프로그래머의 삶 Programmer's Life/Java!!

자바 정규 표현식

Oliver's World 2009. 11. 4. 10:49
728x90

java.util.regex패키지의 Match클래스와 Pattern 클래스를 사용하여 문자열 정규 표현식으로 검증 할 수 있다...의외로 편리하다

사용 방법은 
 
boolean ret=Pattern.matches("^[0-9]*$", str);

정규 표현식
^ - 문자열의 시작
$ - 문자열의 종료
. - 임의의 한 문자
| - or 를 나타냄

? - 앞 문자가 없거나 하나 있음
+ - 앞 문자가 하나 이상임
* - 앞 문자가 없을수도 무한정 많을수도 있음
[] - 문자 클래스를 지정할 때 사용합니다. 문자의 집합이나 범위를 나타내면 두 문자 사이는 '-' 기호로 범위를 나타낸다. [] 내에서 ^ 가 선행하여 나타나면 not 을 나타냄
{} - 선행문자가 나타나는 횟수 또는 범위를 나타낸다.
a{3} - a가 3번 반복된 경우
a{3,} - a 가 3번 이상 반복인 경우
a{3,5} - a 가 3번이상 5번 이하 반복인 경우

\w - 알파벳이나 숫자
\W - 알파벳이나 숫자를 제외한 문자
\d - 숫자[0-9] 와 동일
\D - 숫자를 제외한 모든 문자

기본적인 문자열 검증 정규식

^[0-9]*$ - 숫자만
^[a-zA-Z]*$ - 영문자만
^[가-힣]*$ - 한글만
^[a-zA-Z0-9]*$ - 영어/숫자만

정규식 표현 예제

이메일  -  ^[a-zA-Z0-9]+@[a-zA-Z0-9+$ 
           -  ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$

휴대폰 - ^01(?:0|1|[6-9])-(?:\d{3}|\d{3}|\d{4}) - \d{4}$
일반 전화 - ^\d[2,3]-\d{3,4}-\d{4}$

주민 번호 - \d{6}\-[1-4]\d{6}

IP 주소  - ([0-9]{1,3}\.([0-9]{1,3}\.([0-9]{1,3})

728x90