std::match_results - cppreference.com (original) (raw)

Defined in header
template< class BidirIt, class Alloc = std::allocator<std::sub_match<BidirIt>> > class match_results; (1) (since C++11)
namespace pmr { template <class BidirIt> using match_results = std::match_results<BidirIt, std::pmr::polymorphic_allocator< std::sub_match<BidirIt>>>; } (2) (since C++17)

The class template std::match_results holds a collection of character sequences that represent the result of a regular expression match.

This is a specialized allocator-aware container. It can only be default created, obtained from std::regex_iterator, or modified by std::regex_search or std::regex_match. Because std::match_results holds std::sub_matches, each of which is a pair of iterators into the original character sequence that was matched, it's undefined behavior to examine std::match_results if the original character sequence was destroyed or iterators to it were invalidated for other reasons.

The first std::sub_match (index 0) contained in a std::match_result always represents the full match within a target sequence made by a regex, and subsequent std::sub_matches represent sub-expression matches corresponding in sequence to the left parenthesis delimiting the sub-expression in the regex.

std::match_results meets the requirements of a AllocatorAwareContainer and of a SequenceContainer, except that only copy assignment, move assignment, and operations defined for a constant containers are supported, and that the semantics of comparison functions are different from those required for a container.

Contents

[edit] Type requirements

[edit] Specializations

Several specializations for common character sequence types are provided:

Defined in header
Type Definition
std::cmatch std::match_results<const char*>
std::wcmatch std::match_results<const wchar_t*>
std::smatch std::match_resultsstd:🧵:const\_iterator\
std::wsmatch std::match_resultsstd::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_resultsstd:🧵:const\_iterator\
std::pmr::wsmatch (C++17) std::pmr::match_resultsstd::wstring::const\_iterator\

[edit] Member types

Member type Definition
allocator_type Allocator
value_type std::sub_match<BidirIt>
const_reference const value_type&
reference value_type&
const_iterator implementation-defined (depends on the underlying container)
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>

[edit] Member functions

(constructor) constructs the object (public member function) [edit]
(destructor) destructs the object (public member function) [edit]
operator= assigns the contents (public member function) [edit]
get_allocator returns the associated allocator (public member function) [edit]
State
ready checks if the results are available (public member function)
Size
empty checks whether the match was successful (public member function) [edit]
size returns the number of matches in a fully-established result state (public member function) [edit]
max_size returns the maximum possible number of sub-matches (public member function) [edit]
Element access
length returns the length of the particular sub-match (public member function) [edit]
position returns the position of the first character of the particular sub-match (public member function) [edit]
str returns the sequence of characters for the particular sub-match (public member function) [edit]
operator[] returns specified sub-match (public member function) [edit]
prefix returns sub-sequence between the beginning of the target sequence and the beginning of the full match (public member function) [edit]
suffix returns sub-sequence between the end of the full match and the end of the target sequence (public member function) [edit]
Iterators
begincbegin returns iterator to the beginning of the list of sub-matches (public member function) [edit]
endcend returns iterator to the end of the list of sub-matches (public member function) [edit]
Format
format formats match results for output (public member function) [edit]
Modifiers
swap swaps the contents (public member function) [edit]

[edit] Non-member functions