Pattern.matches

JAVA 2015. 3. 24. 16:53

자바에서 정규식을 이용해서 String데이터를 확인 할 수 있다.


java.util.regex 패키지의 Match, Pattern 클래스를 이용해서 처리 하게 된다.

boolean isChk = Pattern.matches("^[a-zA-Z0-9]*$", str);


정규표현식은 간단히 아래의 문법을 따르게 된다.


^ : 문자열의 시작을 나타냄. 

$ : 문자열의 종료를 나타냄. 

. : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다)

| : or를 나타냄. 


? : 앞 문자가 없거나 하나있음을 나타냄. 

+ : 앞 문자가 하나 이상임을 나타냄. 

* : 앞 문자가 없을 수도 무한정 많을 수도 있음을 나타냄. 


만약, .* 으로 정규식이 시작한다면 시작하는 문자열과 같은 문자열이 뒤에 없거나 많을 수도 있는 경우에만 일치를 시킨다. 즉, abc 일 경우 시작문자인 a를 기준으로 a가 없을경우와 a가 무한정 많은 경우에도 true를 반환하기 때문에 abc의 경우는 true를 반환한다. 


[] : 문자 클래스를 지정할 때 사용한다. 문자의 집합이나 범위를 나타내면 두 문자 사이는 '-' 기호로 범위를 나타낸다. []내에서 ^ 가 선행하여 나타나면 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]*$  :  영문자만

^[가-�R]*$  :  한글만

^[a-zA-Z0-9]*$  :  영어/숫자만


반응형

'JAVA' 카테고리의 다른 글

java메일 제목 깨지는 현상  (0) 2015.03.30
replaceAll 사용시 특수문자  (0) 2015.03.24
정규식 간단 예제  (0) 2015.03.24
자바 정규식 간단 설명  (0) 2015.03.24
script 태그 replaceAll  (0) 2015.03.24
Posted by 질주하는구
,