정규식 제어 문자

제어 문자는 정규식에서 사용할 수 있는 메타 문자, 연산자 및 대체 텍스트 문자입니다.

반자만 인식됩니다. 다음 표의 문자에 해당하는 전자는 인식되지 않습니다.

표 1. 정규식 메타 문자
문자 세트 외부에서 허용됨 세트 내부에서 허용됨 설명
\a BELL, \u0007과 일치합니다.
\A   입력의 처음에서 일치합니다. ^와는 달리 \A는 입력에서 줄 바꾸기 이후 일치하지 않습니다.
\b   현재 위치가 단어 경계인 경우에 일치합니다. 경계는 단어(\w)와 비단어(\W) 문자 사이의 전환에서 발생하며 결합 표시는 무시됩니다.
\B   현재 위치가 단어 경계가 아닌 경우에 일치합니다.
\cX control-X 문자와 일치합니다.
\d Nd(숫자, 10진수)의 유니코드 일반 범주가 있는 모든 문자와 일치합니다.
\D 10진수 숫자가 아닌 모든 문자와 일치합니다.
\e ESCAPE, \u001B와 일치합니다.
\E \Q ... \E 인용 시퀀스를 종료합니다.
\f FORM FEED, \u000C와 일치합니다.
\G   현재 위치가 이전 일치의 끝에 있는 경우에 일치합니다.
\n LINE FEED, \u000A와 일치합니다.
\N{UNICODE CHARACTER NAME} 이름 지정된 문자와 일치합니다.
\p{UNICODE PROPERTY NAME} 지정된 유니코드 특성이 있는 문자와 일치합니다.
\P{UNICODE PROPERTY NAME} 지정된 유니코드 특성이 없는 모든 문자와 일치합니다.
\Q \E까지 다음의 모든 문자 주변에 인용 부호를 지정합니다.
\r CARRIAGE RETURN, \u000D와 일치합니다.
\s 공백 문자와 일치합니다. 공백은 [\t\n\f\r\p{Z}]로 정의됩니다.
\S 공백이 아닌 문자와 일치합니다.
\t HORIZONTAL TABULATION, \u0009와 일치합니다.
\uhhhh 16진 값 hhhh가 있는 문자와 일치합니다.
\Uhhhhhhhh 16진 값 hhhhhhhh가 있는 문자와 일치합니다. 최대 유니코드 코드 포인트가 \U0010ffff인 경우에도 정확히 8개의 16진 숫자를 제공해야 합니다.
\w 단어 문자와 일치합니다. 단어 문자는 다음과 같습니다.

[\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\u200c\u200d]

\W 단어가 아닌 문자와 일치합니다.
\x{hhhh} 16진 값 hhhh가 있는 문자와 일치합니다. 1 - 6개의 16진 숫자가 제공될 수 있습니다.
\xhh 2자리 16진 값 hh가 있는 문자와 일치합니다.
\X   Grapheme Cluster와 일치합니다.
\Z   현재 위치가 입력의 끝에 있지만 마지막 라인 종단자(있는 경우) 앞인 경우 일치합니다.
\z   현재 위치가 입력의 끝에 있는 경우에 일치합니다.
\n   역방향 참조입니다. 일치하는 nth 캡처 그룹과 일치합니다. n> 1이고 < 패턴의 전체 캡처 그룹 수인 수여야 합니다.
\0ooo 8진 문자와 일치합니다. 'ooo'는 1 - 3개의 8진 숫자입니다. 0377은 허용되는 최대 8진 문자입니다. 선행 영(0)이 필수이며 이를 통해 역방향 참조로부터 8진 상수를 구별합니다.
[pattern] 세트의 한 문자와 일치합니다.
.   모든 문자와 일치합니다.
^   라인의 처음에서 일치합니다.
$   라인의 끝에서 일치합니다.
\   다음의 문자 주변에 인용 부호를 지정합니다. 리터럴로 처리하기 위해 인용 부호 안에 표시해야 하는 문자는 * ? + [ ( ) { } ^ $ | \ . /입니다.
\   다음의 문자 주변에 인용 부호를 지정합니다. 리터럴로 처리하기 위해 인용 부호로 묶어야 하는 문자는 [ ] \ 입니다.

컨텍스트에 따라 인용 부호로 묶어야 할 수도 있는 문자는 - &입니다.
표 2. 정규식 연산자
연산자 설명
| 교체입니다. A|BA 또는 B와 일치합니다.
* 0회 이상과 일치합니다. 가능하면 여러 번 일치합니다.
+ 1회 이상 일치합니다. 가능하면 여러 번 일치합니다.
? 0회 또는 1회 일치합니다. 1회를 선호합니다.
{n} 정확히 n회 일치합니다.
{n,} 최소한 n회 일치합니다. 가능하면 여러 번 일치합니다.
{n,m} n - m회 일치합니다. 가능하면 여러 번 일치하지만 m회 이하입니다.
*? 0회 이상과 일치합니다. 가능하면 적게 일치합니다.
+? 1회 이상 일치합니다. 가능하면 적게 일치합니다.
?? 0회 또는 1회 일치합니다. 0회를 선호합니다.
{n}? 정확히 n회 일치합니다.
{n,}? 최소한 n회 일치하지만 전체 패턴 일치에 필요한 횟수 이하입니다.
{n,m}? n - m회 일치합니다. 가능하면 적게 일치하지만 n 이상입니다.
*+ 0회 이상과 일치합니다. 처음 발견 시 가능하면 여러 번 일치하며 전체 일치가 실패한 경우에도 적은 횟수로 재시도하지 않습니다(완전한 일치).
++ 1회 이상 일치합니다. 완전한 일치입니다.
?+ 0회 또는 1회 일치합니다. 완전한 일치입니다.
{n}+ 정확히 n회 일치합니다.
{n,}+ 최소한 n회 일치합니다. 완전한 일치입니다.
{n,m}+ n - m회 일치합니다. 완전한 일치입니다.
( ... ) 캡처 괄호입니다. 괄호 안에 있는 하위 표현식과 일치한 입력의 범위가 일치 후에 사용 가능합니다.
(?: ... ) 비캡처 괄호입니다. 포함된 패턴을 그룹화하지만 일치하는 텍스트의 캡처를 제공하지 않습니다. 캡처 괄호보다 효율적입니다.
(?> ... ) 원자 일치 괄호입니다. 괄호 안에 있는 하위 표현식의 첫 번째 일치만 시도합니다. 전체 패턴 일치로 이어지지 않는 경우 "(?>" 앞의 위치로 일치 검색을 백업하십시오.
(?# ... ) 자유 형식 주석 (?# comment )입니다.
(?= ... ) 미리보기 권한 정보입니다. 괄호 안에 있는 패턴이 현재 입력 위치에서 일치하지만 입력 위치를 진행하지 않는 경우 true입니다.
(?! ... ) 부정적 미리보기 권한 정보입니다. 괄호 안에 있는 패턴이 현재 입력 위치에서 일치하지 않는 경우 true입니다. 입력 위치를 진행하지 않습니다.
(?<= ... ) 나중에 보기 권한 정보입니다. 괄호 안에 있는 패턴이 현재 입력 위치 앞의 텍스트와 일치하는 경우 true입니다. 일치의 마지막 문자는 현재 위치 바로 앞의 입력 문자입니다. 입력 위치를 변경하지 않습니다. 나중에 보기 패턴에 의해 일치하는 가능한 문자열의 길이에 대한 제한을 해제할 수 없습니다(* 또는 + 연산자가 없음).
(?<!...) 부정적 나중에 보기 권한 정보입니다. 괄호 안에 있는 패턴이 현재 입력 위치 앞의 텍스트와 일치하지 않는 경우 true입니다. 일치의 마지막 문자는 현재 위치 바로 앞의 입력 문자입니다. 입력 위치를 변경하지 않습니다. 나중에 보기 패턴에 의해 일치하는 가능한 문자열의 길이에 대한 제한을 해제할 수 없습니다(* 또는 + 연산자가 없음).
(?ismwx-ismwx: ... ) 플래그 설정입니다. 지정된 플래그를 사용 또는 사용 안함으로 설정하여 괄호 안에 있는 표현식을 평가하십시오.
(?ismx-ismx) 플래그 설정입니다. 플래그 설정을 변경하십시오. 변경사항은 설정 이후 패턴의 일부분에 적용됩니다. 예를 들어, (?i)는 대소문자를 구분하지 않는 일치로 변경됩니다.
표 3. 설정 표현식(문자 클래스)
표현식 예 설명
[abc] 문자 a, b 또는 c와 일치합니다.
[^abc] 부정 - a, b 또는 c를 제외한 모든 문자와 일치합니다.
[A-M] 범위 - A - M의 문자와 일치합니다. 포함할 문자는 유니코드 코드 포인트 순서에 따라 판별됩니다.
[\u0000-\U0010ffff] 범위 - 모든 문자와 일치합니다.
[\p{Letter}] 
[\p{General_Category=Letter}] 
[\p{L}]
유니코드 범주 = Letter인 문자입니다. 표시되는 모든 양식은 동등합니다.
[\P{Letter}] 부정 특성입니다(대문자 \P). Letters를 제외한 모든 문자와 일치합니다.
[\p{numeric_value=9}] 9의 숫자 값을 사용하는 모든 숫자와 일치합니다. 모든 유니코드 특성을 설정 표현식에서 사용할 수 있습니다.
[\p{Letter}&&\p{script=cyrillic}] 논리 AND 또는 교차입니다. 모든 키릴 문자 세트와 일치합니다.
[\p{Letter}--\p{script=latin}] 뺄셈입니다. 모든 비라틴 문자와 일치합니다.
[[a-z][A-Z][0-9]] [a-zA-Z0-9]] 내재된 논리 OR 또는 합집합입니다. 예는 ASCII 문자 및 숫자와 일치합니다. 두 개의 양식이 동등합니다.
[:script=Greek:] 특성의 대체 POSIX 유사 구문입니다. \p{script=Greek}와 동등합니다.