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

std::basic_regex

Материал из cppreference.com
 
 
Библиотека регулярных выражений
Классы
(C++11)
Алгоритмы
Итераторы
Исключения
Типы
Константы
(C++11)
Грамматика регулярных выражений
 
 
<tbody> </tbody>
Определено в заголовочном файле <regex>
template < class CharT = char, 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

Функции-элементы

создаёт объект регулярного выражения
(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)