Пространства имён
Варианты
Действия

std::basic_regex

Материал из cppreference.com
< cpp‎ | regex
 
 
Библиотека регулярных выражений
Классы
basic_regex
(C++11)
(C++11)
Алгоритмы
Итераторы
Исключения
Типы
Константы
(C++11)
Грамматика регулярных выражений
 
std::basic_regex
 
Определено в заголовочном файле <regex>
template <

    class CharT = char,
    class Traits = std::regex_traits<CharT>

> class basic_regex;
(начиная с C++11)

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

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

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

Содержание

[править] Типы-элементы

Тип элементОпределение
value_typeCharT
traits_typeTraits
string_typeTraits::string_type
locale_typeTraits::locale_type
flag_typestd::regex_constants::syntax_option_type

[править] Функции-элементы

создаёт объект регулярного выражения
(public функция-элемент) [править]
разрушает объект регулярного выражения
(public функция-элемент) [править]
присваивает содержимое
(public функция-элемент) [править]
присваивает содержимое
(public функция-элемент) [править]
Наблюдатели
возвращает количество отмеченных подвыражений в регулярном выражении
(public функция-элемент) [править]
возвращает флаги синтаксиса
(public функция-элемент) [править]
Локаль
получает информацию о локали
(public функция-элемент) [править]
устанавливает информацию о локали
(public функция-элемент) [править]
Модификаторы
обменивает содержимое
(public функция-элемент) [править]

Константы

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

Необходимо выбрать не более одного варианта грамматики из 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
(шаблон функции) [править]

[править] Принципы вывода (начиная с C++17)