[정규식] 정규식(Regular Expression)
2012.12.01
북마크 작성자 정보
작성일/수정일
2006-06-21 22:36:45 / 2012-12-01 00:00:00
정규식은 문자열의 집합을 다루고 표현하는데 사용하는 규칙입니다. 보통 문자열 검색과 같은 패턴 매칭에 많이 응용됩니다. 보통 정규 표현식이라고도 합니다. 정규식은 여러 가지 규칙이 있습니다. 일단 이 규칙부터 알아보겠습니다.
^문자열의 시작
$문자열의 마지막
.임의의 한 문자
** 앞에 있는 문자가 반복되는 경유, 없을 수도 있습니다.
++ 앞에 있는 문자가 적어도 한번 이상 나오는 경우
?? 앞에 하나의 문자, 없을 수도 있습니다.
[][] 안에 있는 문자열 중에 한 문자
{}{}앞에 있는 문자 또는 문자열의 개수
()()안에 있는 글자들의 그룹화
|OR 연산자 기능
^
^abc : abc로 시작하는 문자열, abc(0),abcd(0),abcde(0),bca(X),cba(X)
$
abc$ : abc로 끝나는 문자열, abc(0),dabc(0),eabc(0),abcd(X)
.
a.c : a와 c 사이에 한 문자 허용, abc(0),adc(0),abdc(X)
*
a*c : a 문자가 반복되거나 없는 경우, c(0),ac(0),aaac(X),aaad(X)
+
a+c : a 문자가 적어도 한번 나오는 경우, ac(0),aac(0),c(X)
?
a?c : a가 없거나 한 개 존재, c(0),ac(0),aac(X)
[]
a[bc] : b,c 중 한 문자가 존재 ab(0),ac(0),ad(X),a(X)
a[bcd]e : b,c,d 중 한 문자가 존재 abe(0),ace(0),ade(X),afe(X)
a[b-e] : b,c,d,e 중 한 문자가 존재 ab(0),ae(0),ad(X),af(X),a(X)
그외 여러개의 문자들이 일렬의 순서로 되어 있을 경우 아래와 같이 간단하게 표현할 수 있습니다.
[a-z]알파벳 소문자 중 한 문자
[A-Z]알파벳 대문자 중 한 문자
[0-9], [[:digit:]]숫자중한자
[a-zA-Z],[[:alpha:]]알파벳 대, 소문자 중 한 문자
[a-Z0-9],[[:alnum:]]알파벳 대 소문자와 숫자 중 한자
[[:space:]]공백문자
[[:punct:]]모든 구두점 기호
^[1-9][0-9]*$ : 처음 숫자가 0이 아니고 끝까지 숫자로 구성, 가격 체크에 사용, 1000(0), 4500(0), 55(0), 055(X), 45R(X)
{}
ab{2}c : ab가 두번 반복, ababc(0) ab{1, 3}c : ab가 한번에서 세번까지 반복, abc(0), ababc(0), abababc(0)
ab{1,}c : ab가 한번부터 무한정 반복, abc(0), ababc(0), abababc(0)....
^a{4}$ : aaaa(0)
()
a(bc)*e : bc만 * 참조, ae(0), abce(0), abcbce(0), abcbcbce(0)...
a(b{2}) : a와 두 개 이상의 b들로 된 문자열, abb(0),abbb(0),ab(X),bbb(X)
|
a(b|c)*d : b 또는 c 가 반복 존재, ad(0), abd(0), acd(0), abbbd(0), accd(0), abcd(X)