C 정규식

Language/C 2012. 1. 5. 08:22

(1) ^ (caret)


라인의 처음이나 문자열의 처음을 표시
예 : ^aa (문자열의 처음에 aa를 포함하면 참, 그렇지 않으면 거짓)

(2) $ (dollar)

라인의 끝이나 문자열의 끝을 표시
예 : aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓)

(3) . (period)

임의의 한 문자를 표시
예 : ^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓)
예 : a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참)

(4) [] (bracket)

문자의 집합이나 범위를 나타냄, 두 문자 사이의 범위는 "-" 사용. 
[]내에서 "^"이 선행되면 not을 나타냄

예 : [abc] (a, b, c 중 어떤 문자, "[a-c]."과 동일)
예 : [Yy] (Y 또는 y)
예 : [A-Za-z0-9] (모든 알파벳과 숫자)
예 : [-A-Z]. ("-"(hyphen)과 모든 대문자)
예 : [^a-z] (소문자 이외의 문자)
예 : [^0-9] (숫자 이외의 문자)

(5) {} (brace)

{} 내의 숫자는 직전의 선행문자가 나타나는 횟수,범위를 나타냄
예 : a{3} ('a'의 3번 반복인 aaa만 해당됨)
예 : a{3,} ('a'가 3번 이상 반복인 aaa, aaaa,  ... 등을 나타냄) 
예 : a{3,5} (aaa, aaaa, aaaaa 만 해당됨) 
예 : ab{2,3} (abb와 abbb 만 해당됨) 
예 : [0-9]{2} (두 자리 숫자) 
예 : doc[7-9]{2} (doc77, doc87, doc97 등이 해당) 
예 : [^Zz]{3} (Z와 z를 포함하지 않는 5개의 문자열, abc, ttt 등) 
예 : .{3,4}er ('er'앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)

(6) * (asterisk)

"*" 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
예 : ab*c ('b'를 0번 또는 여러번 포함하므로 ac, abc, abbbc 등) 
예 : * (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열) 
예 : .* (선행문자가 "."이므로 하나이상의 문자를 포함하는 문자열) 
예 : ab* ('b'를 0번 또는 여러번 포함하므로 a, accc, abb 등) 
예 : a* ('a'를 0번 또는 여러번 포함하므로 k, kd, a, aa, abb 등) 
예 : doc[7-9]* (doc7, doc777, doc778989, doc 등이 해당) 
예 : [A-Z].* (대문자로만 이루어진 문자열) 
예 : like.* (직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등)

(7) + (Plus Sign)

"+" 직전의 선행문자가 1번 이상 나타나는 문자열
예 : ab+c ('b'를 1번 또는 여러번 포함하므로 abc, abcd, abbc 등) 
예 : ab+ ('b'를 1번 또는 여러번 포함하므로 ab, abcc, abb 등) 
예 : [A-Z]+ (대문자로만 이루어진 문자열) 
예 : like.+ (직전의 선행문자가 '.'이므로 like에 하나 이상의 문자가 추가된 문자열이 됨, likely, liker, likelihood 등, 그러나 like는 해당안됨)

(8) ? (question mark)

"?" 직전의 선행문자가 0번 또는 1번 나타나는 문자열
예 : ab?c ('b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨)

(9) () (parenthesis)

()는 정규식내에서 패턴을 그룹화 할 때 사용

(10) | (bar)

or를 나타냄
예 : a|b|c (a, b, c 중 하나, 즉 [a-c]와 동일함) 
예 : yes|Yes (yes나 Yes 중 하나, [yY]es와 동일함) 
예 : korea|japan|chinese (korea, japan, chinese 중 하나)
(11) \ (backslash)
위에서 사용된 특수 문자들을 정규식내에서 문자로 취급하고 싶을 때 '\'를 선행시켜서 사용하면됨
예 : filename\.ext ("filename.ext"를 나타냄) 
예 : [\?\[\\\]] ('?', '[', '\', ']' 중 하나)

[출처] [C] 정규식 표현|작성자 엔비라이더


'Language > C' 카테고리의 다른 글

C로 정규식라이브러리 사용  (0) 2012.01.05
패턴 매칭 ( Pattern Matching )  (0) 2012.01.05
access() 파일 존재나 접근 권한을 확인합니다.  (0) 2011.12.29
void형 포인터  (0) 2011.12.02
이중 포인터의 필요성  (0) 2011.12.02
: