константы 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).
См. также
|
(C++11) | общие параметры, управляющие поведением регулярных выражений (определение типа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/regex/basic_regex/constants