std::match_results
Определён в заголовочном файле <regex> | ||
|---|---|---|
template<
class BidirIt,
class Alloc = std::allocator<std::sub_match<BidirIt>>
> class match_results;
| (1) | (начиная с C++11) |
namespace pmr {
template <class BidirIt>
using match_results = std::match_results<BidirIt,
std::pmr::polymorphic_allocator<
std::sub_match<BidirIt>>>;
}
| (2) | (начиная с C++17) |
Шаблон класса std::match_results содержит коллекцию символьных последовательностей, представляющих результат сопоставления с регулярным выражением.
Это специализированный контейнер с поддержкой аллокатора. Его можно только создать по умолчанию, получить из std::regex_iterator или изменить с помощью std::regex_search или std::regex_match. Поскольку std::match_results содержит std::sub_matchы, каждый из которых является парой итераторов в исходной символьной последовательности, с которой выполнялось сопоставление, поведение не определено, если обращаться к std::match_results после уничтожения исходной символьной последовательности или если итераторы в неё были признаны недействительными по другим причинам.
Первый std::sub_match (индекс 0) в std::match_result всегда представляет полное совпадение в целевой последовательности, найденное регулярным выражением, а последующие std::sub_matchы представляют совпадения подвыражений в порядке, соответствующем открывающим скобкам, ограничивающим подвыражения в регулярном выражении.
std::match_results соответствует требованиям AllocatorAwareContainer и SequenceContainer, за исключением того, что поддерживаются только операции копирующего присваивания, перемещающего присваивания и операции, определённые для константных контейнеров, а семантика функций сравнения отличается от требуемой для контейнера.
Требования к типам
-BidirIt должен соответствовать требованиям LegacyBidirectionalIterator. |
||
-Alloc должен соответствовать требованиям Allocator. |
Специализации
Предоставляются несколько специализаций для распространённых типов символьных последовательностей:
Определён в заголовочном файле <regex> |
|
|---|---|
| Тип | Определение |
std::cmatch | std::match_results<constchar*> |
std::wcmatch | std::match_results<constwchar_t*> |
std::smatch | std::match_results<std::string::const_iterator> |
std::wsmatch | std::match_results<std::wstring::const_iterator> |
std::pmr::cmatch (C++17) | std::pmr::match_results<constchar*> |
std::pmr::wcmatch (C++17) | std::pmr::match_results<constwchar_t*> |
std::pmr::smatch (C++17) | std::pmr::match_results<std::string::const_iterator> |
std::pmr::wsmatch (C++17) | std::pmr::match_results<std::wstring::const_iterator> |
Типы-члены
| Тип-член | Определение |
|---|---|
allocator_type |
Allocator |
value_type | std::sub_match<BidirIt> |
const_reference | constvalue_type& |
reference |
value_type& |
const_iterator | определяется реализацией (зависит от базового контейнера) |
iterator |
const_iterator |
difference_type | std::iterator_traits<BidirIt>::difference_type |
size_type | std::allocator_traits<Alloc>::size_type |
char_type | std::iterator_traits<BidirIt>::value_type |
string_type | std::basic_string<char_type> |
Функции-члены
| создаёт объект (открытая функция-член) |
|
| уничтожает объект (открытая функция-член) |
|
| присваивает содержимое (открытая функция-член) |
|
| возвращает связанный аллокатор (открытая функция-член) |
|
Состояние |
|
| проверяет, доступны ли результаты (открытая функция-член) |
|
Размер |
|
| проверяет, было ли сопоставление успешным (открытая функция-член) |
|
| возвращает количество совпадений в полностью сформированном состоянии результата (открытая функция-член) |
|
| возвращает максимально возможное количество подсовпадений (открытая функция-член) |
|
Доступ к элементам |
|
| возвращает длину указанного подсовпадения (открытая функция-член) |
|
| возвращает позицию первого символа указанного подсовпадения (открытая функция-член) |
|
| возвращает символьную последовательность указанного подсовпадения (открытая функция-член) |
|
| возвращает указанное подсовпадение (открытая функция-член) |
|
| возвращает подпоследовательность между началом целевой последовательности и началом полного совпадения (открытая функция-член) |
|
| возвращает подпоследовательность между концом полного совпадения и концом целевой последовательности (открытая функция-член) |
|
Итераторы |
|
| возвращает итератор на начало списка подсовпадений (открытая функция-член) |
|
| возвращает итератор на конец списка подсовпадений (открытая функция-член) |
|
Форматирование |
|
| форматирует результаты сопоставления для вывода (открытая функция-член) |
|
Модификаторы |
|
| обменивает содержимое (открытая функция-член) |
|
Функции, не являющиеся членами
|
(удалены в C++20) | лексикографически сравнивает значения в двух наборах результатов сопоставления (шаблон функции) |
|
(C++11) | специализирует алгоритм std::swap (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/regex/match_results