Spec-Zone.ru › C++

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>

Функции-члены

(конструктор)
создаёт объект
(открытая функция-член)
(деструктор)
уничтожает объект
(открытая функция-член)
operator=
присваивает содержимое
(открытая функция-член)
get_allocator
возвращает связанный аллокатор
(открытая функция-член)
Состояние
ready
проверяет, доступны ли результаты
(открытая функция-член)
Размер
empty
проверяет, было ли сопоставление успешным
(открытая функция-член)
size
возвращает количество совпадений в полностью сформированном состоянии результата
(открытая функция-член)
max_size
возвращает максимально возможное количество подсовпадений
(открытая функция-член)
Доступ к элементам
length
возвращает длину указанного подсовпадения
(открытая функция-член)
position
возвращает позицию первого символа указанного подсовпадения
(открытая функция-член)
str
возвращает символьную последовательность указанного подсовпадения
(открытая функция-член)
operator[]
возвращает указанное подсовпадение
(открытая функция-член)
prefix
возвращает подпоследовательность между началом целевой последовательности и началом полного совпадения
(открытая функция-член)
suffix
возвращает подпоследовательность между концом полного совпадения и концом целевой последовательности
(открытая функция-член)
Итераторы
begincbegin
возвращает итератор на начало списка подсовпадений
(открытая функция-член)
endcend
возвращает итератор на конец списка подсовпадений
(открытая функция-член)
Форматирование
format
форматирует результаты сопоставления для вывода
(открытая функция-член)
Модификаторы
swap
обменивает содержимое
(открытая функция-член)

Функции, не являющиеся членами

operator==operator!=
(удалены в C++20)
лексикографически сравнивает значения в двух наборах результатов сопоставления
(шаблон функции)
std::swap(std::match_results)
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API