다음을 통해 공유


regex_constants 네임스페이스

정규식 플래그에 대한 네임스페이스입니다.

구문

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_bolmatch_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