정규식 플래그에 대한 네임스페이스입니다.
구문
namespace regex_constants {
enum syntax_option_type;
enum match_flag_type;
enum error_type;
}
설명
네임스페이스 regex_constants는 여러 플래그 형식과 관련 플래그 값을 캡슐화합니다.
| 속성 | 설명 |
|---|---|
| error_type | 정규식 구문 오류 보고에 대한 플래그입니다. |
| match_flag_type | 정규식 일치 옵션에 대한 플래그입니다. |
| syntax_option_type | 구문 옵션을 선택하기 위한 플래그입니다. |
요구 사항
헤더:<regex>
네임스페이스: std
regex_constants::error_type
정규식 구문 오류 보고에 대한 플래그입니다.
enum error_type
{ // identify error
error_collate,
error_ctype,
error_escape,
error_backref,
error_brack,
error_paren,
error_brace,
error_badbrace,
error_range,
error_space,
error_badrepeat,
error_complexity,
error_stack,
error_parse,
error_syntax
};
설명
형식은 오류 플래그를 저장할 수 있는 개체를 설명하는 열거 형식입니다. 고유 플래그 값은 다음과 같습니다.
error_backref -- 식에 잘못된 역참조가 포함되었습니다.
error_badbrace 식에 잘못된 개수의 { } 식이 포함되었습니다.
error_badrepeat -- 반복 실행 식(대부분의 컨텍스트에서 '*', '?', '+', '{' 중 하나)이 식 뒤에 오지 않았습니다.
error_brace -- 식에 일치하지 않는 '(' 또는 ')'가 포함되었습니다.
error_brack -- 식에 일치하지 않는 '(' 또는 ')'가 포함되었습니다.
error_collate -- 식에 잘못된 데이터 정렬 요소 이름이 포함되었습니다.
error_complexity -- 시도된 일치가 너무 복잡하여 실패했습니다.
error_ctype -- 식에 잘못된 문자 클래스 이름이 포함되었습니다.
error_escape -- 식에 잘못된 이스케이프 시퀀스가 포함되었습니다.
error_paren -- 식에 일치하지 않는 '(' 또는 ')'가 포함되었습니다.
error_parse - 식을 구문 분석하지 못했습니다.
error_range -- 식에 잘못된 문자 범위 지정자가 포함되었습니다.
error_space -- 사용 가능한 리소스가 부족하여 정규식을 구문 분석하지 못했습니다.
error_stack -- 사용 가능한 메모리가 부족하여 시도된 일치가 실패했습니다.
error_syntax -- 구문 오류를 구문 분석하지 못했습니다.
error_backref -- 식에 잘못된 역참조가 포함되었습니다.
regex_constants::match_flag_type
정규식 일치 옵션에 대한 플래그입니다.
enum match_flag_type
{ // specify matching and formatting rules
match_default = 0x0000,
match_not_bol = 0x0001,
match_not_eol = 0x0002,
match_not_bow = 0x0004,
match_not_eow = 0x0008,
match_any = 0x0010,
match_not_null = 0x0020,
match_continuous = 0x0040,
match_prev_avail = 0x0100,
format_default = 0x0000,
format_sed = 0x0400,
format_no_copy = 0x0800,
format_first_only = 0x1000,
_Match_not_null = 0x2000
};
설명
형식은 정규식에 대해 텍스트 시퀀스를 일치시킬 때 사용할 옵션 및 텍스트를 대체할 때 사용할 형식 플래그에 대해 설명하는 비트 마스크 형식입니다. 옵션은 |와 함께 사용할 수 있습니다.
일치 옵션은 다음과 같습니다.
match_default
match_not_bol -- 대상 시퀀스의 첫 번째 위치를 줄의 시작으로 처리하지 않습니다.
match_not_eol -- 대상 시퀀스의 끝을 지난 위치를 줄의 끝으로 처리하지 않습니다.
match_not_bow -- 대상 시퀀스의 첫 번째 위치를 단어의 시작으로 처리하지 않습니다.
match_not_eow -- 대상 시퀀스의 끝을 지난 위치를 단어의 끝으로 처리하지 않습니다.
match_any -- 둘 이상의 일치 항목이 가능한 경우 임의 일치 항목이 허용됩니다.
match_not_null -- 빈 시퀀스를 일치 항목으로 처리하지 않습니다.
match_continuous -- 대상 시퀀스의 시작 부분이 아닌 다른 위치에서 일치 항목을 검색하지 않습니다.
match_prev_avail
--
--first는 유효한 반복기이며, 설정된 경우 match_not_bol 및 match_not_bow를 무시합니다.
형식 플래그는 다음과 같습니다.
format_default -- ECMAScript 형식 규칙을 사용합니다.
format_sed -- sed 형식 규칙을 사용합니다.
format_no_copy -- 정규식과 일치하지 않는 텍스트를 복사하지 않습니다.
format_first_only -- 첫 번째 일치 항목 뒤에서 일치 항목을 검색하지 않습니다.
regex_constants::syntax_option_type
구문 옵션을 선택하기 위한 플래그입니다.
enum syntax_option_type
{ // specify RE syntax rules
ECMAScript = 0x01,
basic = 0x02,
extended = 0x04,
awk = 0x08,
grep = 0x10,
egrep = 0x20,
_Gmask = 0x3F,
icase = 0x0100,
nosubs = 0x0200,
optimize = 0x0400,
collate = 0x0800
};
설명
형식은 정규식을 컴파일할 때 사용할 언어 지정자 및 구문 한정자를 설명하는 비트 마스크 형식입니다. 옵션은 |와 함께 사용할 수 있습니다. 한 번에 둘 이상의 언어 지정자를 사용할 수 없습니다.
언어 지정자는 다음과 같습니다.
ECMAScript -- ECMAScript로 컴파일
basic -- BRE로 컴파일
extended -- ERE로 컴파일
awk -- awk로 컴파일
grep -- grep로 컴파일
egrep -- egrep로 컴파일
구문 한정자는 다음과 같습니다.
icase -- 일치 항목이 대/소문자를 구분하지 않도록 함
nosubs -- 구현은 캡처 그룹의 콘텐츠를 추적할 필요가 없습니다.
optimize -- 구현에서 정규식 컴파일 속도가 아닌 일치 속도를 강조해야 함
collate -- 일치 항목이 로캘을 구분하도록 함
참고 항목
<regex>
regex_error 클래스
<regex> 함수
regex_iterator 클래스
<regex 연산자>
regex_token_iterator 클래스
regex_traits 클래스
<regex> typedefs