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:

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

Можно выбрать не более одного варианта грамматики из 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)
общие параметры, управляющие поведением регулярных выражений
(определение типа)

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

Spec-Zone.ru

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