Поделиться через


Пространство имен 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_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