문자 클래스를 사용하면 일반 표현식에서 한 위치에 대응되는 문자 목록을 지정할 수 있습니다. 문자 클래스를 정의할 때는 대괄호(
[
및
]
)를 사용합니다. 예를 들어, 다음 일반 표현식은
bag
,
beg
,
big
,
bog
또는
bug
와 일치하는 문자 클래스를 정의합니다.
/b[aeiou]g/
문자 클래스의 이스케이프 시퀀스
대개 일반 표현식에서 특별한 의미를 갖는 메타문자와 메타시퀀스의 대부분은 문자 클래스 내에서는 같은 의미를 갖지
않습니다.
예를 들어, 별표는 일반 표현식에서 반복을 나타내는 데 사용되지만 문자 클래스에 나타날 때는 그렇지 않습니다. 다음 문자 클래스는 나열된 다른 모든 문자와 함께 별표를 문자 그대로 찾습니다.
/[abc*123]/
그러나 다음 표에 나열된 세 단어는 메타문자로 사용되어 문자 클래스에서도 특별한 의미를 가집니다.
메타문자
|
문자 클래스에 사용할 경우 의미
|
]
|
문자 클래스의 끝을 정의합니다.
|
-
|
문자 범위를 정의합니다("문자 클래스의 문자 범위" 참조).
|
\
|
메타시퀀스를 정의하고 메타문자의 특별한 의미를 제거합니다.
|
이러한 문자가 특별한 메타문자 의미를 갖지 않고 리터럴 문자로 인식되게 하려면 해당 문자 앞에 백슬래시 이스케이프 문자를 추가해야 합니다. 예를 들어, 다음 일반 표현식에는 네 가지 심볼(
$
,
\
,
]
또는
-
) 중 하나와 일치하는 문자 클래스가 포함되어 있습니다.
/[$\\\]\-]/
특별한 의미를 유지하는 메타문자뿐만 아니라 다음 메타시퀀스도 문자 클래스 내에서 특별한 의미를 갖는 메타시퀀스로 사용됩니다.
메타시퀀스
|
문자 클래스에 사용할 경우 의미
|
\n
|
개행 문자를 찾습니다.
|
\r
|
캐리지 리턴 문자를 찾습니다.
|
\t
|
탭 문자를 찾습니다.
|
\u
nnnn
|
16진수
nnnn
으로 정의된 유니코드 값을 사용하는 문자를 찾습니다.
|
\\x
nn
|
16진수
nn
으로 정의된 ASCII 값을 사용하는 문자를 찾습니다.
|
다른 일반 표현식 메타시퀀스 및 메타문자는 문자 클래스 내에서 일반 문자로 처리됩니다.
문자 클래스의 문자 범위
하이픈을 사용하면
A-Z
,
a-z
또는
0-9
와 같이 문자 범위를 지정할 수 있습니다. 이러한 문자는 문자 세트에서 유효한 범위를 구성해야 합니다. 예를 들어, 다음 문자 클래스는
a-z
범위의 문자 중 하나 또는 임의의 숫자를 찾습니다.
/[a-z0-9]/
\\x
nn
ASCII 문자 코드를 사용하여 ASCII 값으로 범위를 지정할 수도 있습니다. 예를 들어, 다음 문자 클래스는 확장 ASCII 문자(예:
é
및
ê
) 세트의 문자를 찾습니다.
\\x
문자 클래스 부정
캐럿(
^
) 문자를 문자 클래스의 맨 앞에 사용하면 해당 클래스를 제외하고 나열되지 않은 모든 문자를 찾습니다. 다음 문자 클래스는 소문자(
a–z
) 또는 숫자
이외의
모든 문자를 찾습니다.
/[^a-z0-9]/
부정을 나타내려면 캐럿(
^
) 문자를 문자 클래스의
맨 앞에
입력해야 합니다. 그렇지 않으면 캐럿 문자가 문자 클래스의 문자에 추가됩니다. 예를 들어, 다음 문자 클래스는 캐럿을 포함하여 많은 심볼 문자 중 하나를 찾습니다.
/[!.,#+*%$&^]/
|
|
|