Regular Expressions                
            문자 클래스
        
        
            
    수색…
비고
간단한 수업
| 정규식 | 성냥 | 
|---|---|
 [abc]  |   다음 문자 중 하나 : a , b 또는 c  | 
 [az]  |   어떠한 문자 에 a z 포괄적 (이 범위라고 함)  | 
 [0-9]  |   에서 모든 숫자 0 에 9 (포함)  | 
공통 수업
문자의 일부 그룹 / 범위는 자주 사용되며 특수 약어가 있습니다.
| 정규식 | 성냥 | 
|---|---|
 \w  |  영숫자와 밑줄 ( "단어 문자"라고도 함) | 
 \W  |   단어가 아닌 문자 ( [^\w] 와 동일)  | 
 \d  |   숫자 (페르시아 숫자, 인도 문자 등을 포함하여 [0-9] 보다 큼)  | 
 \D  |   페르시아 숫자, 인도식 문자를 거부 한 이후 [^0-9] 보다 짧은 자릿수가 아닌 자릿수  | 
 \s  |  공백 문자 (공백, 탭 등) 참고 : 엔진 / 컨텍스트에 따라 다를 수 있습니다. | 
 \S  |  비 공백 문자 | 
수업 거부
여는 대괄호 뒤에있는 캐럿 (^) 은 그 뒤에 오는 문자의 부정으로 작동합니다. 이것은 문자 클래스에없는 모든 문자와 일치합니다.
제외 된 문자 클래스도 줄 바꿈 문자와 일치하므로 일치하지 않으면 특정 줄 바꿈 문자를 클래스 (\ r 및 / 또는 \ n)에 추가해야합니다.
| 정규식 | 성냥 | 
|---|---|
 [^AB]  |   이외의 모든 문자 및 A B  | 
 [^\d]  |  숫자를 제외한 모든 문자 | 
기본 사항
 Team A , Team B , ..., Team Z 라는 팀 목록이 있다고 가정 해 보겠습니다. 그때: 
-  
Team [AB]:Team A또는Team B중 하나와 일치합니다. -  
Team [^AB]:Team A또는Team B제외한 모든 팀과 일치합니다. 
 우리는 종종 어떤 문맥이나 다른 문맥 ( A 부터 Z 까지 A 글자와 같은)에서 "속한"문자들을 일치시킬 필요가 있으며, 이것은 문자 클래스가 사용하는 것입니다. 
서로 다른 유사 단어 일치
 문자 클래스 [aeiou] 생각해보십시오. 이 문자 클래스는 정규 표현식에서 유사한 철자 단어 세트를 일치시키는 데 사용될 수 있습니다. 
 b[aeiou]t 일치 : 
- 박쥐
 - 내기
 - 비트
 - 봇
 - 그러나
 
일치하지 않는 항목 :
- 합
 - BT
 - bt
 
문자 클래스는 한 번에 한 문자 씩만 일치합니다.
영숫자가 아닌 문자 일치 (부정 문자 클래스)
[^0-9a-zA-Z]
  이것은 숫자 나 문자가 아닌 모든 문자 (영숫자)와 일치합니다. 밑줄 문자 _ 도 무효화되면 식은 다음과 같이 짧아 질 수 있습니다. 
[^\w]
 또는:
\W
 다음 문장에서 :
어때 잘 지내?
나는 2017 년을 기다릴 수 없다!
다음 문자가 일치합니다.
,,,'?끝 문자.
',,!끝 문자.
 유니 코드 참고 
 유니 코드 문자 속성을 지원하는 일부 맛은 다른 유니 코드 문자를 의미하는 [\p{L}\p{N}_] 및 [^\p{L}\p{N}_] 로 \w 및 \W 를 해석 할 수 있습니다 숫자도 포함됩니다 ( PCRE 문서 참조). 다음은 PCRE \w 테스트입니다 . 
 
 .NET에서, \w = [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Mn}\p{Nd}\p{Pc}] PCRE와 달리 \p{Nl} 과 \p{No} 와는 일치하지 않음을주의하십시오 ( \w .NET 문서 참조 ). 
 어떤 이유로 든 유니 코드 3.1 소문자 (예 : 𝐚𝒇𝓌𝔨𝕨𝗐𝛌𝛚 )가 일치하지 않습니다. 
 Java의 (?U)\w 는 PCRE와 .NET에서 일치하는 \w 의 조합과 일치합니다. 
 
비 숫자 매칭 (부정 문자 클래스)
[^0-9]
 이것은 ASCII 숫자가 아닌 모든 문자와 일치합니다.
유니 코드 숫자도 부정되는 경우, 다음 표현식을 사용할 수 있습니다.
[^\d]
 다음과 같이 단축 할 수 있습니다.
\D
  u 수정자를 사용하여 명시 적으로 또는 일부 언어에서 프로그래밍 방식으로 유니 코드 문자 속성 지원을 활성화해야 할 수도 있지만 이는 명백하지 않을 수 있습니다. 인 텐트를 명시 적으로 전달하기 위해 다음 구조를 사용할 수 있습니다 (지원이 사용 가능한 경우). 
\P{N}
 어떤 정의에 의미 : 모든 스크립트에서 숫자 문자가 아닌 모든 문자. 부정 문자 범위에서는 다음을 사용할 수 있습니다.
[^\p{N}]
 다음 문장에서 :
어때 잘 지내?
나는 2017 년을 기다릴 수 없다!
다음 문자가 일치합니다.
,,,'?, 줄 끝 문자 및 모든 문자 (소문자 및 대문자).
',,!, 줄 끝 문자 및 모든 문자 (소문자 및 대문자).
초급자가 직면하는 인성 계급 및 공통 문제
1. 캐릭터 클래스
 문자 클래스는 [] 로 표시됩니다. 문자 클래스 내의 내용은 single character separately 로 처리됩니다. 예를 들어 우리가 
[12345]
  위의 예에서 일치하는 1 or 2 or 3 or 4 or 5 합니다. 간단히 말해 or condition for single characters ( or condition for single characters 스트레스) 로 이해 or condition for single characters 으로 이해 될 수 있습니다. 
1.1주의 사항
-  문자 클래스에는 문자열을 일치시키는 개념이 없습니다. 따라서 regex 
[cat]사용하고 있다면 문자 그대로cat이라는 단어와 일치해야한다는 의미는 아니지만c또는a또는t와 일치해야 함을 의미합니다. 이것은 regex에 새로운 사람들 사이에 존재하는 매우 일반적인 오해입니다. -  때때로 사람들은 
|(교대) 문자 클래스 내에서 그것은 잘못된OR condition작용할 것이라고 생각합니다. 예 :[a|b]실제로a또는|와 일치 함을 의미합니다. (문자 그대로) 또는b. 
2. 문자 클래스의 범위
 문자 클래스의 범위는 - 기호로 표시됩니다. 영문자 A ~ Z 문자를 찾고 싶다고합시다. 다음 문자 클래스를 사용하여이 작업을 수행 할 수 있습니다. 
[A-Z]
  이것은 유효한 ASCII 또는 유니 코드 범위에 대해 수행 할 수 있습니다. 가장 일반적으로 사용되는 범위는 [AZ] , [az] 또는 [0-9] 입니다. 또한이 범위는 문자 클래스로 결합 할 수 있습니다. 
[A-Za-z0-9]
  즉, 범위 A to Z 또는 a to z 또는 0 to 9 문자 0 to 9 . 순서는 무엇이든 될 수 있습니다. 따라서 위에서 정의한 범위가 정확하면 위의 내용은 [a-zA-Z0-9] 와 동일합니다. 
2.1주의 사항
때로는
A에서Z까지의 범위를 작성할 때[Az]로 작성합니다. 우리가Z대신z를 사용하기 때문에 이것은 대부분의 경우에 잘못입니다. 따라서 이것은 ASCII 범위90(Z) 다음에 많은 의도하지 않은 문자가 포함 된 ASCII 범위65(A) ~122(z)의 문자와 일치한다는 것을 나타냅니다. 그러나 특정 언어에 대해 데이터 정렬이 설정되면[Az]는 POSIX 스타일 정규 표현식의 모든[a-zA-Z]문자를 일치시키는 데 사용할 수 있습니다.LC_COLLATE="en_US.UTF-8"Cygwin에서[[ "ABCEDEF[]_abcdef" =~ ([Az]+) ]] && echo "${BASH_REMATCH[1]}"을[[ "ABCEDEF[]_abcdef" =~ ([Az]+) ]] && echo "${BASH_REMATCH[1]}"하면ABCEDF생성ABCEDF.[[ "ABCEDEF[]_abcdef" =~ ([Az]+) ]] && echo "${BASH_REMATCH[1]}"LC_COLLATE를C설정하면 (Cygwin에서export완료) 예상 된ABCEDEF[]_abcdef있습니다.의미
-내부 문자 클래스는 특별합니다. 위에서 설명한대로 범위를 나타냅니다. 우리가 일치 할 경우-문자 그대로? 우리는 두 문자 사이에 놓으면 범위를 나타낼 것입니다. 이 경우 우리는 넣어야 할-같은 문자 클래스의 시작에[-AZ]나 같은 문자 클래스의 끝에서[AZ-]또는escape it당신처럼 중간에 그것을 사용하려는 경우[AZ\-az].
3. 부정적 문자 클래스
 부정 문자 클래스는 [^..] 로 표시됩니다. 캐럿 기호 ^ 는 문자 클래스에있는 문자를 제외한 모든 문자와 일치한다는 것을 나타냅니다. 예 
[^cat]
  c 또는 a 또는 t 제외한 모든 문자를 t . 
3.1주의 사항
-  캐럿 기호 
^의 의미는 문자 클래스 시작시에만 부정에 매핑됩니다. 문자 클래스의 다른 곳에서는 특별한 의미가없는 문자 그대로의 캐럿 문자로 처리됩니다. -  어떤 사람들은 
[^]와 같은 정규식을 씁니다. 대부분의 regex 엔진에서는 오류가 발생합니다. 그 이유는^를 시작 위치에 사용하고있을 때, 부정되어야 할 적어도 하나의 문자를 기대하기 때문입니다. JavaScript 에서는, 이것은 아무것도 아닌 , 즉 가능한 모든 심볼 (그러나 적어도 ES5에서는 발음 구별 부호)과 일치하는 유효한 구조입니다. 
POSIX 문자 클래스
POSIX 문자 클래스는 특정 문자 집합에 대해 미리 정의 된 시퀀스입니다.
| 문자 클래스 | 기술 | 
|---|---|
 [:alpha:]  |  영문자 | 
 [:alnum:]  |  영문자와 숫자 | 
 [:digit:]  |  자릿수 | 
 [:xdigit:]  |  16 진수 | 
 [:blank:]  |  스페이스 및 탭 | 
 [:cntrl:]  |  제어 문자 | 
 [:graph:]  |  표시되는 문자 (공백 및 제어 문자 제외) | 
 [:print:]  |  보이는 문자와 공백 | 
 [:lower:]  |  소문자 | 
 [:upper:]  |  대문자 | 
 [:punct:]  |  구두점 및 기호 | 
 [:space:]  |  줄 바꿈을 포함하여 모든 공백 문자 | 
구현 및 / 또는 로케일에 따라 추가 문자 클래스를 사용할 수 있습니다.
| 문자 클래스 | 기술 | 
|---|---|
 [:<:]  |  단어의 시작 | 
 [:>:]  |  단어의 끝 | 
 [:ascii:]  |  ASCII 문자 | 
 [:word:]  |   문자, 숫자 및 밑줄. \w 와 같습니다.  | 
대괄호 시퀀스 (일명 문자 클래스)를 내부에서 사용하려면 대괄호도 포함해야합니다. 예:
[[:alpha:]]
 이것은 하나의 영문자와 일치합니다.
[[:digit:]-]{2}
  이것은 자릿수 또는 - 2 개의 문자와 일치합니다. 다음과 일치합니다. 
-  
-- -  
11 -  
-2 -  
3- 
자세한 정보는 Regular-expressions.info에서 확인할 수 있습니다.
