정규식 문자 클래스
문자 클래스 구성
문자 클래스를 사용하면 단일 문자 매칭을 생성할 수 있는 문자 세트를 대괄호로 묶을 수 있습니다. 문자 클래스는 단일 문자에만 매칭됩니다. 예를 들어,
gr[ae]y
매칭 대상 gray
또는 grey
, 종료 안함 graay
또는 graey
. 괄호 안의 문자 순서는 중요하지 않습니다.문자 클래스 내에 하이픈을 사용하여 문자 범위를 지정할 수 있습니다. 예:
[a-z]
은 사이의 단일 소문자와 매칭됩니다. a
및 z
. 둘 이상의 범위를 사용하거나 범위와 단일 문자의 조합을 사용할 수도 있습니다. 예: [0-9X]
숫자 또는 문자와 일치 X
. 문자 및 범위의 순서는 중요하지 않습니다.여는 괄호 뒤에 오는 캐럿은 매칭에서 제외할 문자를 지정합니다. 예를 들어,
[^abc]
다음을 제외한 모든 문자와 매칭: a
, b
, 또는 c
.구성 | 유형 | 설명 |
|---|---|---|
[
abc ] | 단순 | 매칭 a 또는 b 또는 c
|
[^abc]
| 부정 | 다음을 제외한 모든 문자와 일치: a 또는 b 또는 c
|
[a-zA-Z]
| 범위 | 매칭 a ~ 까지 z , 또는 A ~ 까지 Z (포함) |
[a-d[m-p]]
| 조합 | 매칭 a ~ 까지 d , 또는 m ~ 까지 p
|
[a-z&&[def]]
| 교차점 | 매칭 d , e , 또는 f
|
[a-z&&[^xq]]
| 빼기 | 매칭 a ~ 까지 z , 제외 x 및 q
|
사전 정의된 문자 클래스
사전 정의된 문자 클래스는 일반적으로 사용되는 정규식의 편리한 약식 표기법입니다.
구성 | 설명 | 예 |
|---|---|---|
.
| 모든 단일 문자와 매칭(개행 문자 제외) | .at '배치 파일' 구에서 'cat', 'hat' 및 'bat'와 일치 |
\d
| 모든 숫자 문자와 매칭됩니다( [0-9] ) | \d 'C3PO'의 '3' 및 'file_2.txt'의 '2'와 일치 |
\D
| 모든 숫자가 아닌 문자와 매칭됩니다( [^0-9] ) | \D '900S'의 'S' 및 'Q45'의 'Q'와 일치 |
\s
| 임의의 단일 공백 문자와 매칭됩니다( [ \t\n\x0B\f\r] ) | \sbook '파란색 책'의 'book'과 일치하지만 'notebook'의 아무것도 일치하지 않음 |
\S
| 공백이 아닌 단일 문자와 매칭됩니다. | \Sbook 'notebook'의 'book'은 일치하지만 '파란색 책'의 항목은 일치하지 않습니다. |
\w
| 밑줄을 포함한 모든 영숫자 문자와 매칭됩니다( [A-Za-z0-9_] ) | r\w* 'RM' 및 'root'와 일치 |
\W
| 영숫자가 아닌 모든 문자와 매칭됩니다( [^A-Za-z0-9_] ) | \W 'stmd &'의 '&', '100%'의 '%', '$HOME'의 '$'와 매칭됩니다. |
POSIX 문자 클래스(US-ASCII)
POSIX에는 특정 공통 범위를 나타내는 문자 클래스 세트가 있습니다. 로케일(로컬 언어/코딩 시스템)을 고려한다는 점을 제외하면 괄호 및 사전 정의된 문자 클래스와 유사합니다.
구성 | 설명 |
|---|---|
\p{Lower}
| 소문자 영문자, [a-z]
|
\p{Upper}
| 대문자 - 영문자, [A-Z]
|
\p{ASCII}
| ASCII 문자 [\x00-\x7F]
|
\p{Alpha}
| 영문자 [a-zA-z]
|
\p{Digit}
| 숫자 [0-9]
|
\p{Alnum}
| 영숫자 [a-zA-z0-9]
|
\p{Punct}
| 다음 중 하나의 문장 부호 문자 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
|
\p{Graph}
| 표시되는 문자, [\p{Alnum}\p{Punct}]
|
\p{Print}
| 인쇄용 문자 [\p{Graph}\x20]
|
\p{Blank}
| 공백 또는 탭 [ t]
|
\p{Cntrl}
| 제어 문자, [\x00-\x1F\x7F]
|
\p{XDigit}
| 16진수 [0-9a-fA-F]
|
\p{Space}
| 공백 문자 [ \t\n\x0B\f\r]
|