정규 표현식을 만들려면 특수문자와 구성 규칙으로 이루어진 특정 구문을 사용해야 합니다. 예를 들어 다음은 nnn-nnn-nnnn 패턴의 10자리 전화번호와 일치하는 간단한 정규 표현식입니다.
\d{3}-\d{3}-\d{4}
다음 표에서는 정규 표현식에 가장 일반적으로 사용하는 특수문자에 대해 설명합니다. 이러한 문자는 다음과 같이 분류됩니다.
문자 | 설명 |
---|---|
앵커 | |
^ | (캐럿) 정규 표현식이 검색하는 텍스트의 행 또는 문자열의 시작 부분과 일치합니다. 예를 들어 제목 위치에 다음 정규 표현식을 포함하는 콘텐츠 규칙을 사용하면 ^abc 제목이 abc 문자로 시작하는 모든 이메일 메시지가 캡처됩니다. |
$ | (달러) 정규 표현식이 검색하는 텍스트의 행 또는 문자열의 끝 부분과 일치합니다. 예를 들어 제목 위치에 다음 정규 표현식을 포함하는 콘텐츠 규칙을 사용하면 xyz$ 제목이 xyz 문자로 끝나는 모든 이메일 메시지가 캡처됩니다. |
메타문자 | |
. | (점) 새로운 행을 제외하고 모든 단일 문자를 매칭합니다. |
| | (파이프) 둘 중 하나를 나타내며 '또는'을 의미합니다. 예를 들면 다음과 같습니다. cat|dog는 cat 또는 dog와 일치합니다. |
\ | 다음 문자가 특수문자가 아닌 문자 그대로의 의미임을 나타냅니다. 예를 들면 다음과 같습니다. '\.'는 점 문자가 아닌 리터럴 마침표와 일치합니다. |
문자 종류 | |
[...] | 문자 집합에 속한 문자와 일치합니다. 대시로 문자 집합에 있는 첫 번째 문자와 마지막 문자를 구분합니다. 예를 들면 다음과 같습니다. [123]은 숫자 1, 2 또는 3과 일치합니다. [a-f]는 a에서 f까지의 모든 문자와 일치합니다. 참고: 콘텐츠 규정 준수 정책의 정규 표현식은 대소문자를 구분합니다. |
[^...] | 문자 집합에 없는 모든 문자와 일치합니다. 예를 들면 다음과 같습니다. [^a-f]는 a에서 f까지 문자 이외의 모든 문자와 일치합니다. 참고: 콘텐츠 규정 준수 정책의 정규 표현식은 대소문자를 구분합니다. |
[:alnum:] | 다음과 같은 영숫자 문자(문자 또는 숫자)와 일치합니다. a~z, A~Z 또는 0~9 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:alnum:]]). |
[:alpha:] | 다음 영문자와 일치합니다. a~z 또는 A~Z 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:alpha:]]). |
[:digit:] | 다음 숫자와 일치합니다. 0~9 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예[[:digit:]]). |
[:graph:] | 공백, 제어 문자 등을 제외한 모든 보이는 문자와 일치합니다. 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:graph:]]). |
[:punct:] | 다음과 같은 구두점 문자 및 기호와 일치합니다. ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:punct:]]). |
[:print:] | 보이는 문자 및 공백과 일치합니다. 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:print:]]). |
[:space:] | 공백, 탭 및 줄바꿈을 비롯한 모든 공백 문자와 일치합니다. 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:space:]]). |
[:word:] | 다음과 같은 단어 문자(문자, 숫자 또는 밑줄)와 일치합니다. a~z, A~Z, 0~9 또는 _ 참고: 이 문자 종류를 정규 표현식에서 사용할 때는 대괄호로 한 번 더 묶어야 합니다(예: [[:word:]]). |
요약 문자 종류 | |
\w | 다음과 같은 단어 문자(문자, 숫자 또는 밑줄)와 일치합니다. a~z, A~Z, 0~9 또는 _ [:word:]와 동일함 |
\W | 단어가 아닌 문자(문자, 숫자, 밑줄 이외의 문자)와 일치합니다. [^[:word:]]와 동일함 |
\s | 공백 문자와 일치합니다. 예를 들어 이 문자를 사용하여 구문에 포함된 단어 사이에 공백을 지정할 수 있습니다. stock\stips는 stock tips라는 구문과 일치합니다. [:space:]와 동일함 |
\S | 공백 이외의 문자와 일치합니다. [^[:space:]]와 동일함 |
\d | 0~9 사이의 숫자와 일치합니다. [:digit:]와 동일함 |
\D | 0~9 사이의 숫자 이외의 문자와 일치합니다. [^[:digit:]]와 동일함 |
그룹화 | |
(...) | 표현식의 일부를 그룹화합니다. 그룹화를 통해 그룹에 수량자를 적용하거나 그룹 앞 또는 뒤에 있는 문자 종류와 일치할 수 있습니다. |
수량자 | |
{n} | 선행 표현식과 정확히 n번 일치합니다. 예를 들면 다음과 같습니다. [a-c]{2}는 한 행에 2개의 문자가 있는 경우에만 a에서c까지의 문자와 일치합니다. 따라서 이 표현식은 ab 및 bc와 일치하지만 abc 또는 aabbc와는 일치하지 않습니다. |
{n,m} | 선행 표현식과 최소 n번에서 최대 m번 일치합니다. 예를 들면 다음과 같습니다. [a-c]{2,4}는 a에서 c까지의 문자가 한 행에 최소 2번과 최대 4번 있는 경우에만 일치합니다. 따라서 이 표현식은 ab 및 abc와 일치하지만 aabbc와는 일치하지 않습니다. |
? | 선행 문자나 표현식과 0번 또는 1번 일치할 수 있음을 나타내며 {0,1} 범위와 같습니다. 예를 들어 다음 정규 표현식의 경우 colou?r u는 ?의 선택사항이므로 colour 또는 color와 일치합니다. |