정규 표현식(Regular Expression)에는 Posix(Portable Operating System Interface)정규 표현식과 펄 호환(Pcre: Perl-Compatible) 정규 표현식이 있습니다.

여기서 Posix 정규 표현식은 대상 문자열에 지정된 패턴과 일치하거나 일부분을 검색하여 패턴을 만들거나 치환할 수 있습니다.


패턴 기본 구문

패턴은 다음 표의 매칭되는 문자열을 찾습니다.

패 턴 설 명
[0-9]
[0123456789]
0부터 9사이 매칭되는 숫자를 찾습니다.
[a-z] a부터 z사이 매칭되는 소문자를 찾습니다.
[A-Z] A부터 Z사이 매칭되는 대문자를 찾습니다.
[a-zA-Z]
[a-Z]
a부터 z사이 매칭되는 대소문자를 찾습니다.

"-"는 두 문자 사이의 범위를 나타내며, [^abc]처럼 ^이 시작 문자에 오면 abc를 제외한 문자를 찾습니다.

패 턴 설 명
[^0-9] 0부터 9사이 매칭되는 숫자를 제외한 문자를 찾습니다.
[^a-z] a부터 z사이 매칭되는 소문자를 제외한 문자를 찾습니다.
[^abcd] abcd를 제외한 문자를 찾습니다.


한정사(qualifiers)

한정사 기호는 +,*,?를 사용할 수 있으며 , 문자열의 횟수나 순서를 표현합니다.

기 호 설 명
x+ 하나 이상의 x를 포함하고 있는 문자열에 매칭합니다.
xyz나 axxyz에 매칭하지만, ayz는 해당되지 않습니다.
x* 0 또는 하나 이상의 x를 포함합니다.
xyz나 ayz, axxyz에 매칭합니다.
x? 0 또는 하나의 x만을 포함합니다.
xyz와 ayz는 매칭되지만, xxxyz는 매칭되지 않습니다.


정규표현식 영역(Bounds)

영역은 중괄호 안에 숫자를 지정하여 중괄호 앞에 오는 문자나 숫자의 횟수를 말합니다.

형 식 설 명
12{3} 1뒤에 2가 3번 나타나는 것을 뜻합니다.
12{3, } 1뒤에 2가 3번이상 나타나는 것을 뜻합니다.
12(3,5} 1뒤에 2가 3번에서 5번 나타나는 것을 뜻합니다.


정규표현식 특수문자 사용

정규표현식에 다음 표의 특수문자를 사용할 수 있습니다.

형 식 설 명
. 하나의 문자에 해당합니다.
"a. [0-9]"는 a뒤에 하나의 문자가 오고, 뒤에 숫자가 옵니다.
ab1, az3, am9등이 매칭됩니다.
^ 문자열의 시작을 의미합니다.
"^ab"는 문자열의 시작 부분에 "ab"가 나오는데,
이는 about, abuby, abcd에 매칭됩니다.
$ 문자열의 끝을 뜻합니다.
ab$뒤에 문자열이 끝나는 것으로 12ab, asab, technoab등에 매칭하지만
dropabe는 매칭되지 않습니다.


문자 클레스(Character classes)

문자클레스 표기법은 다음 표와 같습니다.

형 식 설 명
[[:alnum:]] 숫자, 영문자에 매칭합니다. [a-zA-Z_0-9]와 같습니다.
[[:digit:]] 숫자에 매칭합니다. [0-9]와 같습니다.
[[:alpha:]] 영문자에 매칭합니다. [a-zA-Z]와 같습니다.

정규표현식에는 OR연산자인 |를 이용할 수 있습니다. "abc|xyz"는 abc 또는 xyz에 해당되며, 정규표현식에 사용되는 특수문자를 일반 문자로 사용하려면 역슬레쉬를 이용하는데, \$, \|, \^, \{로 표현하면 됩니다.

0 댓글