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<const char*> |
std::wcmatch | std::match_results<const wchar_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<const char*> |
std::pmr::wcmatch (C++17) | std::pmr::match_results<const wchar_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 | const value_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/w/cpp/regex/match_results