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<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>

Члены-функции

(конструктор)
создаёт объект
(публичный член-функция)
(деструктор)
уничтожает объект
(публичный член-функция)
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/w/cpp/regex/match_results

Spec-Zone.ru

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