반응형
원문 : 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();
String regex = ".*iPhone.*|.*Android.*|.*Opera.*";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
boolean isSmartPhone = m.matches();
정규식에 따른 결과를 정리된 사이트가 있군요.
더 자세히 알고 싶으면 여기로 가세요.
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] OutOfMemory 왜 발생하는거야? (2) | 2011.10.24 |
---|---|
[Android 문서번역] Avoiding Memory Leaks (메모리 누수를 피하는 방법) (0) | 2011.10.23 |
[안드로이드] 시스템 분석을 위한 쉘 명령어 (0) | 2011.10.21 |
안드로이드 Cache 파일 삭제하기 (0) | 2011.10.20 |
TextView - 문자열 다루는 방법 (spannable) (1) | 2011.10.04 |
[안드로이드] 프로세스별 메모리 사용량 분석 (0) | 2011.09.28 |
[안드로이드] repo 다운로드 받기 (3) | 2011.09.25 |
[안드로이드] 파일복사 어떻게 해야 빨라질까? (1) | 2011.09.22 |
[안드로이드] 윈도우 백그라운드 & UI 속도 (번역) (0) | 2011.09.11 |
[안드로이드] 죽어도 다시 살아나는 서비스 (0) | 2011.09.10 |