최근 업무를 보다보니 이 정규표현식이라는 것을 많이 사용하게 된다.
정규표현식이라는건 메타문자(특수한 문자/기호)를 이용하여 이루어진 패턴으로써, 정해진 패턴을 사용하여 데이터를 검색하는
표현식이라고 생각하면 편하다.
1. '.'
임의의 한 문자
ex)
s.e -> sae, sbe, sce, sde, ...
.ce -> ace, kce,
dce, ...
2. '*'
바로 앞의 문자가 없거나
하나 이상
ex)
s*e -> e, se, see, ssse, ...
abc* -> ab, abc,
abcc, abccc, ...
h*im -> im, him, hhim, hhhim, ...
3. '+'
바로 앞의 문자가 하나
이상
ex)
s+e -> se, sse, ssse, ...
4. '?'
바로 앞의 문자가 없거나
하나
ex)
th?e -> e, the 이 두가지표현이 유일하겠지.
5. '^'
바로 뒤의 문자열로
시작
ex)
^The -> The girl is, Theather, ... (뒷부분부터 공백까지
검사)
^a?bc -> bc, abc,
...
^.e -> he, me, request, settle,
...
^s.e? -> sa, sae, sb, sbe, ... (e는 나와도 되고 안나와도
되고)
6. '$'
바로 앞의 문자열로
종료
ex)
a?bc$ -> eeabe, seebc, bc, ...
+.e$ -> onthetoe,
bctae, appetittle, ...
s?c+$ -> e, se, ee, eee, seee, seee,
...
7.
'[]'
[] 안에 있는 문자 중 하나, 범위는 '-'로 지정
ex)
[ab]cd -> acd, bcd, ...
[a-z] -> 영문 소문자
(a부터 z까지)
[a-zA-Z] -> 영문자(대소문자)
[0-9] -> 0부터 9까지의
숫자
ag[a-z] -> aga, agbcd, agzzz, ...
^ab[cd]ef ->
abcef, abdef, ...
^[a-zA-Z] -> 영문자로 시작
^[a-zA-Z_] -> 아이디
검사할 때 첫글자가 영문자와 '_' 만 쓰도록 할때
^[가-힣] -> 한글로 시작해야 할 때
[^a-zA-Z0-9] ->
^이 안으로 들어가면 제외(부정)의 의미가 된다. 영문자나 숫자로 시작할 수 없을 때
[a-zA-Z0-9]$ ->
영문자나 숫자로 종료
[가-힣] ->
한글(완성형)만 가능. ㅋㅋㅋ 같은 문자는 제외
[abc] -> 이 안에 있는 문자중에 하나. 즉, a b c 중에 하나의
문자.
8. '{}'
{} 앞의 문자나 문자열
출현 횟수
ex)
a{2}b -> aab, ... a가 꼭 2번 나와야 한다는
뜻.
a{2,}b -> aab, aaab, aaaab, ... a가 최소 2번 이상
나오도록 하라는 뜻.
a{2, 3}b -> aab, aaab, ... a는 최소 2번 최대 3번 나오도록
하라는 뜻.
9. '()'
()안에 있는 문자를
그룹화
ex)
a(bc){2} -> abcbc, ... a다음 bc가 2번 나와야 한다는
뜻..
a(bc)* -> abcbcbc, ... a다음 bc의 출현횟수는 무한대가
가능하다는 뜻.
10. '|'
or
연산자
ex)
he|she -> he, she is, ...
(he|she)is ->
heis, sheis, ...
11. 특수 문자 사용
^ []
$ () | * + ? {} \
앞에 \ 붙여서 사용해야함
ex)
\*+ : * 가 하나 이상 포함된 패턴
\d : 순수한 숫자, 정수값,
0-9
\d{2,3}-/d{3,4}-/d{4} : 전화번호 정규식. -? 하이퍼뒤에 물음표가
있으면 하이퍼가 있어도 되고 없어도 된다는 뜻.
\D : \d와 반대 (숫자를 제외한 나머지)
\w : [a-zA-Z0-9] 의
줄임표현.
\W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 된다는
뜻.
\s
: 공백 문자
\S : \s와 반대 (공백 문자를 제외한 나머지)
출처 : 토토님 블로그
'컴퓨터일반' 카테고리의 다른 글
우분투(Ubuntu), 잃어버린 eth0 디바이스를 되살리는 방법!! (2) | 2013.05.07 |
---|---|
크롬 계열 브라우저, 사진 업로드시 뜨는 외국 광고창 해결 방법 (6) | 2013.02.20 |
엔비디아(Nvidia), "디스플레이 드라이버가 응답을 중지하고 복구됨" 메시지 해결방법!! (32) | 2012.12.26 |
구글 크롬 플러그인 "니켈-28" Win7 64Bit 실행실패 해결 방법!! (2) | 2012.12.14 |
윈도우8(Windows 8), 정품인증 오류(0x8007232B) 해결 방법!! (6) | 2012.11.02 |
댓글