Spec-Zone.ru › C++

std::basic_regex

Определён в заголовочном файле <regex>
template<
    class CharT,
    class Traits = std::regex_traits<CharT>
> class basic_regex;
(начиная с C++11)

Шаблон класса basic_regex предоставляет универсальную основу для хранения регулярных выражений.

Предоставляется несколько псевдонимов типов для распространённых типов символов:

Определён в заголовочном файле <regex>
Тип Определение
std::regex std::basic_regex<char>
std::wregex std::basic_regex<wchar_t>

Типы-члены

Тип-член Определение
value_type CharT
traits_type Traits
string_type Traits::string_type
locale_type Traits::locale_type
flag_type std::regex_constants::syntax_option_type

Функции-члены

(конструктор)
создаёт объект регулярного выражения
(открытая функция-член)
(деструктор)
уничтожает объект регулярного выражения
(открытая функция-член)
operator=
присваивает содержимое
(открытая функция-член)
assign
присваивает содержимое
(открытая функция-член)
Наблюдатели
mark_count
возвращает количество отмеченных подвыражений в регулярном выражении
(открытая функция-член)
flags
возвращает флаги синтаксиса
(открытая функция-член)
Локаль
getloc
получает сведения о локали
(открытая функция-член)
imbue
задаёт сведения о локали
(открытая функция-член)
Модификаторы
swap
обменивает содержимое
(открытая функция-член)

Константы

Вариант грамматики Действие
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 Указывает механизму регулярных выражений ускорить сопоставление, потенциально замедлив создание. Например, это может означать преобразование недетерминированного конечного автомата в детерминированный.
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).

Константы-члены в basic_regex являются копиями констант syntax_option_type, определённых в пространстве имён std::regex_constants.

Функции, не являющиеся членами

std::swap(std::basic_regex)
(C++11)
специализирует алгоритм std::swap
(шаблон функции)

Руководства по выводу типов(начиная с C++17)

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

Spec-Zone.ru

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