Spec-Zone.ru › C++

std::basic_regex константы

Определено в заголовочном файле <regex>
static constexpr std::regex_constants::syntax_option_type icase =
    std::regex_constants::icase;
static constexpr std::regex_constants::syntax_option_type nosubs =
    std::regex_constants::nosubs;
static constexpr std::regex_constants::syntax_option_type optimize =
    std::regex_constants::optimize;
static constexpr std::regex_constants::syntax_option_type collate =
    std::regex_constants::collate;
static constexpr std::regex_constants::syntax_option_type ECMAScript =
    std::regex_constants::ECMAScript;
static constexpr std::regex_constants::syntax_option_type basic =
    std::regex_constants::basic;
static constexpr std::regex_constants::syntax_option_type extended =
    std::regex_constants::extended;
static constexpr std::regex_constants::syntax_option_type awk =
    std::regex_constants::awk;
static constexpr std::regex_constants::syntax_option_type grep =
    std::regex_constants::grep;
static constexpr std::regex_constants::syntax_option_type egrep =
    std::regex_constants::egrep;
static constexpr std::regex_constants::syntax_option_type multiline =
    std::regex_constants::multiline;
(с C++17)

std::basic_regex определяет несколько констант, управляющих синтаксисом общего сопоставления с регулярными выражениями.

Эти константы дублируются из std::regex_constants.

Значение Эффект(ы)
icase Сопоставление символов должно выполняться без учета регистра.
nosubs При выполнении сопоставлений все отмеченные подвыражения (expr) обрабатываются как неопределенные подвыражения (?:expr). Сопоставления не сохраняются в предоставленной структуре std::regex_match и mark_count() равно нулю.
optimize Указывает движку регулярных выражений на более быстрое сопоставление, потенциально замедлив построение. Например, это может означать преобразование недетерминированного конечного автомата в детерминированный.
collate Диапазоны символов вида "[a-b]" будут чувствительны к локали.
multiline (C++17) Указывает, что ^ должно соответствовать началу строки, а $ должно соответствовать концу строки, если выбран движок ECMAScript.
ECMAScript Использовать модифицированную грамматику регулярных выражений ECMAScript.
basic Использовать основную грамматику регулярных выражений POSIX (документация грамматики).
extended Использовать расширенную грамматику регулярных выражений POSIX (документация грамматики).
awk Использовать грамматику регулярных выражений, используемую утилитой awk в POSIX (документация грамматики).
grep Использовать грамматику регулярных выражений, используемую утилитой grep в POSIX. Это фактически то же самое, что и опция basic с добавлением разделителя чередования новой строки '\n'.
egrep Использовать грамматику регулярных выражений, используемую утилитой grep с опцией -E в POSIX. Это фактически то же самое, что и опция extended с добавлением разделителя чередования новой строки '\n' в дополнение к '|'.

Должна быть выбрана не более одной грамматической опции из ECMAScript, basic, extended, awk, grep, egrep. Если грамматика не выбрана, предполагается, что выбрана ECMAScript. Остальные опции служат модификаторами, так что std::regex("meow", std::regex::icase) эквивалентно std::regex("meow", std::regex::ECMAScript|std::regex::icase).

См. также

syntax_option_type
(C++11)
общие опции, контролирующие поведение регулярных выражений
(typedef)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/regex/basic_regex/constants

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API