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 (шаблон функции) |