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