php
PHP - Posix 정규 표현식 기초
정규 표현식(Regular Expression)에는 Posix(Portable Operating System Interface)정규 표현식과 펄 호환(Pcre: Perl-Compatible) 정규 표현식이 있습니다.
여기서 Posix 정규 표현식은 대상 문자열에 지정된 패턴과 일치하거나 일부분을 검색하여 패턴을 만들거나 치환할 수 있습니다.
"-"는 두 문자 사이의 범위를 나타내며, [^abc]처럼 ^이 시작 문자에 오면 abc를 제외한 문자를 찾습니다.
정규표현식에는 OR연산자인 |를 이용할 수 있습니다. "abc|xyz"는 abc 또는 xyz에 해당되며, 정규표현식에 사용되는 특수문자를 일반 문자로 사용하려면 역슬레쉬를 이용하는데, \$, \|, \^, \{로 표현하면 됩니다.
여기서 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 댓글