std::basic_regex
Материал из cppreference.com
Определено в заголовочном файле <regex> | ||
template < class CharT = char, | (начиная с 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
.
[править] Функции, не являющиеся элементами
(C++11) | специализация алгоритма std::swap (шаблон функции) |