본문 바로가기
안드로이드

[자바] 자바 정규표현식(Regular Expression)

by 호군 2011. 9. 29.
반응형

원문 : http://www.cyworld.com/deepb1ue/3452022
링크 : http://gypark.pe.kr/wiki/Perl/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D#INDEXR_155

문자열안에서 의미있는 표현을 사용 하고싶다면 이 정규표현식을 사용하면



정규식  설명 예제
 . 임의의 한 문자(필수)를 의미 합니다. ab.(abc, abd,abe) ..
 ? 바로 앞에 문자가 없거나 하나가 있음을 의미 합니다. a?c (ac, abc, bc) ..
 * 바로 앞에 문자가 없거나 하나이상 반복을 의미 합니다. ab* (a, ab, aba) ..
 + 바로 앞에 문자가 하나이상 반복을 의미 합니다. ab+ (ab, abb, abbb) ..
 ^ 문자열의 시작을 의미 합니다. ^ab (abc, abcd, abcde) ..
 [^] ^이후의 괄호안 형식을 제외함을 의미 합니다. [^ab]cd (ecd, fcd, gcd) ..
$ 문자열의 끝을 의미 합니다. abc$ (pupu abc, story abc) ..
 [] []안의 형식 일치를 의미 합니다. [abc] (a, b, c, ab, bc, abc) ...
 {} {}앞 문자열(혹은 문자) 반복 갯수를 의미 합니다. ab{2} (abab)
ab{2,} (2개이상)
ab{1,2} (1부터 2까지)
 () ()안의 내용 을 하나의 묶음으로 사용 함을 의미 합니다. (ab){2} (abab)
(ab)+ (ab, abab, ababab ..)
 | or연산을 의미 합니다. (a|b|c)  (a, b, c, ab,abc ..)
 [0-9] (부터 - 까지)의 숫자를 의미 합니다. [0-9] (0, 1, 2, 3, 4 ..)
[a-z]
(부터 - 까지)의 소문자를 의미 합니다. [a-z] (a, b, c, d ..)
 [a-zA-Z] (부터 - 까지)의 대,소문자를 의미 합니다.  [a-zA-Z] (a, b, A, B ..)
 \p(Alpha) 대,소문자 아파벳을 의미 합니다. (a, b, c, D, E, F ..)
\p(Digit)
숫자를 의미 합니다. (1, 2, 3 ..)
 \p{Alnum} 대,소문자 아파벳, 숫자를 의미 합니다. (a, b, c, d, e, 1, 2, 3 ..)
\d 숫자를 의미 합니다. (1, 2, 3, 4 ..)
 \D 숫자가 아닌 것을 의미 합니다.   (a, b, d, E ..)


(?i) : 대소문자 구분하지 않음.

적용 예제

//정규표현식 적용 a로 시작하며, a다음 아무문자1개만,  마지막은c로 끝남  :  "^a.c$"

//이메일 형식검사 : "\\p{Alnum}+@\\p{Alnum}+\\.\\p{Alnum}+"

 
코딩 예제
import java.util.regex.Patten;
import java.util.regex.Matcher;
 
String input = request.getParameter("param");
//문자열 중 iPhone 또는 Android, Opera 중 하나의 단어를 포함하고 있을 경우
String regex = ".*iPhone.*|.*Android.*|.*Opera.*";
 
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
boolean isSmartPhone = m.matches();




정규식에 따른 결과를 정리된 사이트가 있군요.
더 자세히 알고 싶으면 여기로 가세요.


반응형