STD::MATCH_RESULTS(3cxx)
π NAME π
std::match_results< _Bi_iter, _Alloc > β bestie, this is the place where the results of a match or search operation live. Like, the receipts of your regex. β¨
(also hi, this is std::match_resu..._iter, _Alloc >(3cxx), the manual page, coming at you in two parts π«Ά)
π SYNOPSIS π
#include <regex>
Inherits std::vector< _Tp, _Alloc >. No cap, it really does.
π 28.10 Public Types π
typedef sub_match< _Bi_iter > value_typetypedef const value_type & const_referencetypedef value_type & referencetypedef _Base_type::const_iterator const_iteratortypedef const_iterator iteratortypedef __iter_traits::difference_type difference_typetypedef allocator_traits< _Alloc >::size_type size_typetypedef _Alloc allocator_typetypedef __iter_traits::value_type char_typetypedef std::basic_string< char_type > string_type
π Public Member Functions π
template<typename _Out_iter > _Out_iter format (_Out_iter __out, const match_results< _Bi_iter, _Alloc >::char_type *__fmt_first, const match_results< _Bi_iter, _Alloc >::char_type *__fmt_last, match_flag_type __flags) constβ the big format function, go write your matches out somewhere π₯bool ready () const noexceptβ Indicates if thematch_resultsis ready. the vibe check of match_results, honestly β¨
π 28.10.1 Construction, Copying, and Destruction π
match_results ()β Constructs a defaultmatch_resultscontainer.match_results (const _Alloc &__a) noexceptβ Constructs a defaultmatch_resultscontainer.match_results (const match_results &)=defaultβ Copy constructs amatch_results.match_results (match_results &&) noexcept=defaultβ Move constructs amatch_results.match_results & operator= (const match_results &)=defaultβ Assignsrhsto*this.match_results & operator= (match_results &&)=defaultβ Move-assignsrhsto*this.~match_results ()=defaultβ Destroys amatch_resultsobject. bye bestie πmatch_results (const match_results &__m, const _Alloc &__a)β Constructs a defaultmatch_resultscontainer.match_results (match_results &&__m, const _Alloc &__a) noexcept(noexcept(_Base_type(std::move(__m), __a)))β Constructs a defaultmatch_resultscontainer.
π¦ 28.10.2 Size π¦
size_type size () const noexceptβ Gets the number of matches and submatches.size_type max_size () const noexceptβ Gets the number of matches and submatches.bool empty () const noexceptβ Indicates if thematch_resultscontains no results. the "nothing matched" heartbreak π
πΈ 28.10.4 Element Access πΈ
difference_type length (size_type __sub=0) constβ Gets the length of the indicated submatch.difference_type position (size_type __sub=0) constβ Gets the offset of the beginning of the indicated submatch.string_type str (size_type __sub=0) constβ Gets the match or submatch converted to a string type.const_reference operator[] (size_type __sub) constβ Gets asub_matchreference for the match or submatch.const_reference prefix () constβ Gets asub_matchrepresenting the match prefix.const_reference suffix () constβ Gets asub_matchrepresenting the match suffix.const_iterator begin () const noexceptβ Gets an iterator to the start of thesub_matchcollection.const_iterator cbegin () const noexceptβ Gets an iterator to the start of thesub_matchcollection.const_iterator end () const noexceptβ Gets an iterator to one-past-the-end of the collection.const_iterator cend () const noexceptβ Gets an iterator to one-past-the-end of the collection.
β 28.10.5 Formatting β
These functions perform formatted substitution of the matched character sequences into their target. The format specifiers and escape sequences accepted by these functions are determined by their flags parameter as documented above. iykyk π
template<typename _Out_iter > _Out_iter format (_Out_iter __out, const char_type *__fmt_first, const char_type *__fmt_last, match_flag_type __flags=regex_constants::format_default) consttemplate<typename _Out_iter , typename _St , typename _Sa > _Out_iter format (_Out_iter __out, const basic_string< char_type, _St, _Sa > &__fmt, match_flag_type __flags=regex_constants::format_default) consttemplate<typename _St , typename _Sa > basic_string< char_type, _St, _Sa > format (const basic_string< char_type, _St, _Sa > &__fmt, match_flag_type __flags=regex_constants::format_default) conststring_type format (const char_type *__fmt, match_flag_type __flags=regex_constants::format_default) const
π 28.10.6 Allocator π
allocator_type get_allocator () const noexceptβ Gets a copy of the allocator.
π§ 28.10.7 Swap π§
void swap (match_results &__that) noexceptβ Swaps the contents of twomatch_results.
π Private Member Functions π
constexpr iterator begin () noexceptconstexpr iterator end () noexceptconstexpr const_reference operator[] (size_type __n) const noexceptβ Subscript access to the data contained in the vector.constexpr reference operator[] (size_type __n) noexceptβ Subscript access to the data contained in the vector.constexpr void swap (vector &__x) noexceptβ Swaps data with another vector.
π Friends π
template<typename , typename , typename > class regex_iterator
π«Ά Related Symbols π«Ά
(Note that these are not member symbols. not part of the inner circle, but still iconic π)
template<typename _Bi_iter , typename _Alloc > bool operator== (const match_results< _Bi_iter, _Alloc > &__m1, const match_results< _Bi_iter, _Alloc > &__m2)β Compares twomatch_resultsfor equality.template<typename _Bi_iter , typename _Alloc > void swap (match_results< _Bi_iter, _Alloc > &__lhs, match_results< _Bi_iter, _Alloc > &__rhs) noexceptβ Swaps two match results.
β¨ Detailed Description β¨
template<typename _Bi_iter, typename _Alloc = allocator<sub_match<_Bi_iter> >>
class std::match_results< _Bi_iter, _Alloc >
"The results of a match or search operation." β literally the whole point, bestie.
A collection of character sequences representing the result of a regular expression match. Storage for the collection is allocated and freed as necessary by the member functions of class template match_results.
This class satisfies the Sequence requirements, with the exception that only the operations defined for a const-qualified Sequence are supported. so it's like Sequenceβ’ but lowkey const-only, don't fight it π
The sub_match object stored at index 0 represents sub-expression 0, i.e. the whole match. In this case the sub_match member matched is always true. The sub_match object stored at index n denotes what matched the marked sub-expression n within the matched expression. If the sub-expression n participated in a regular expression match then the sub_match member matched evaluates to true, and members first and second denote the range of characters [first, second) which formed that match. Otherwise matched is false, and members first and second point to the end of the sequence that was searched.
fr fr: index 0 = the whole thing, and matched is always true there. every other index depends on whether that sub-expression actually showed up to the party π
π Since π
C++11
πΊ Constructor & Destructor Documentation πΊ
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results () [inline]
Constructs a default match_results container.
Postcondition
size() returns 0 and str() returns an empty string. empty on purpose, main character energy π
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results (const _Alloc & __a) [inline], [explicit], [noexcept]
Constructs a default match_results container.
Postcondition
size() returns 0 and str() returns an empty string.
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results (const match_results< _Bi_iter, _Alloc > &) [default]
Copy constructs a match_results. twin behavior π
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results (match_results< _Bi_iter, _Alloc > &&) [default],
[noexcept]
Move constructs a match_results. it just slides over, no drama π¦
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::~match_results () [default]
Destroys a match_results object.
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results (const match_results< _Bi_iter, _Alloc > & __m, const
_Alloc & __a) [inline]
Constructs a default match_results container.
Postcondition
size() returns 0 and str() returns an empty string.
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> std::match_results< _Bi_iter, _Alloc
>::match_results (match_results< _Bi_iter, _Alloc > && __m, const _Alloc
& __a) [inline], [noexcept]
Constructs a default match_results container.
Postcondition
size() returns 0 and str() returns an empty string.
π Member Function Documentation π
okay so bestie, this is the part where match_results actually starts doing its little dances β¨ every signature is kept exactly as it is β no cap, no renaming, no βfixing.β preconditions are called out with > so you donβt miss them, and every reference / referenced-by list is right here. letβs go π
πΈ begin
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_iterator std::match_results<
_Bi_iter, _Alloc >::begin () const [inline], [noexcept]
Gets an iterator to the start of the sub_match collection. literally the front door of the match list πͺβ¨
- References:
std::vector< _Tp, _Alloc >::begin() - Referenced by:
std::match_results< _Bi_iter, _Alloc >::cbegin(), andstd::match_results< _Bi_iter, _Alloc >::operator==()
π¦ cbegin
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_iterator std::match_results<
_Bi_iter, _Alloc >::cbegin () const [inline], [noexcept]
Gets an iterator to the start of the sub_match collection. same start-of-the-collection energy, const flavored π
- References:
std::match_results< _Bi_iter, _Alloc >::begin()
π cend
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_iterator std::match_results<
_Bi_iter, _Alloc >::cend () const [inline], [noexcept]
Gets an iterator to one-past-the-end of the collection. the βyouβve gone too far, bestieβ marker π
- References:
std::match_results< _Bi_iter, _Alloc >::end()
π empty
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> bool std::match_results< _Bi_iter,
_Alloc >::empty () const [inline], [noexcept]
Indicates if the match_results contains no results. vibe check: is the match list empty or not? π
Return values:
trueβ Thematch_resultsobject is empty.falseβ Thematch_resultsobject is not empty.- Referenced by:
std::match_results< _Bi_iter, _Alloc >::operator==(),std::match_results< _Bi_iter, _Alloc >::prefix(), andstd::match_results< _Bi_iter, _Alloc >::suffix()
β¨ end
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_iterator std::match_results<
_Bi_iter, _Alloc >::end () const [inline], [noexcept]
Gets an iterator to one-past-the-end of the collection. itβs giving βthe end, periodtβ π
- References:
std::vector< _Tp, _Alloc >::empty(), andstd::vector< _Tp, _Alloc >::end() - Referenced by:
std::match_results< _Bi_iter, _Alloc >::cend(), andstd::match_results< _Bi_iter, _Alloc >::operator==()
π« format (1 of 4)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> template<typename _Out_iter , typename
_St , typename _Sa > _Out_iter std::match_results< _Bi_iter, _Alloc
>::format (_Out_iter __out, const basic_string< char_type, _St, _Sa > &
__fmt, match_flag_type __flags = regex_constants::format_default) const
[inline]
Precondition: ready() == true
- References:
std::basic_string< _CharT, _Traits, _Alloc >::data(),std::match_results< _Bi_iter, _Alloc >::format(), andstd::basic_string< _CharT, _Traits, _Alloc >::size()
π₯ format (2 of 4)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> template<typename _Out_iter > _Out_iter
std::match_results< _Bi_iter, _Alloc >::format (_Out_iter __out, const
char_type * __fmt_first, const char_type * __fmt_last, match_flag_type
__flags = regex_constants::format_default) const
Precondition: ready() == true
- Referenced by:
std::match_results< _Bi_iter, _Alloc >::format(),std::match_results< _Bi_iter, _Alloc >::format(), andstd::match_results< _Bi_iter, _Alloc >::format()
π format (3 of 4)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> template<typename _St , typename _Sa >
basic_string< char_type, _St, _Sa > std::match_results< _Bi_iter, _Alloc
>::format (const basic_string< char_type, _St, _Sa > & __fmt,
match_flag_type __flags = regex_constants::format_default) const
[inline]
Precondition: ready() == true
- References:
std::back_inserter(), andstd::match_results< _Bi_iter, _Alloc >::format()
π format (4 of 4)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> string_type std::match_results<
_Bi_iter, _Alloc >::format (const char_type * __fmt, match_flag_type
__flags = regex_constants::format_default) const [inline]
Precondition: ready() == true
- References:
std::back_inserter(), andstd::match_results< _Bi_iter, _Alloc >::format()
π§ get_allocator
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> allocator_type std::match_results<
_Bi_iter, _Alloc >::get_allocator () const [inline], [noexcept]
Gets a copy of the allocator. tiny little allocator souvenir π
- References:
std::vector< _Tp, _Alloc >::get_allocator()
π length
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> difference_type std::match_results<
_Bi_iter, _Alloc >::length (size_type __sub = 0) const [inline]
Gets the length of the indicated submatch.
Parameters:
__subindicates the submatch.
Precondition: ready() == true
This function returns the length of the indicated submatch, or the length of the entire match if __sub is zero (the default).
π¦ max_size
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> size_type std::match_results< _Bi_iter,
_Alloc >::max_size () const [inline], [noexcept]
Gets the number of matches and submatches. The number of matches for a given regular expression will be either 0 if there was no match or mark_count() + 1 if a match was successful. Some matches may be empty.
Returns:
- the number of matches found.
π operator= (copy)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> match_results & std::match_results<
_Bi_iter, _Alloc >::operator= (const match_results< _Bi_iter, _Alloc >
&) [default]
Assigns rhs to *this. classic copy-assign behavior, defaulted and chill π«Ά
π operator= (move)
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> match_results & std::match_results<
_Bi_iter, _Alloc >::operator= (match_results< _Bi_iter, _Alloc > &&)
[default]
Move-assigns rhs to *this. same assignment energy, but itβs moving, periodt π¨
π operator[]
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_reference std::match_results<
_Bi_iter, _Alloc >::operator[] (size_type __sub) const [inline]
Gets a sub_match reference for the match or submatch.
Parameters:
__subindicates the submatch.
Precondition: ready() == true
This function gets a reference to the indicated submatch, or the entire match if __sub is zero.
If __sub >= size() then this function returns a sub_match with a special value indicating no submatch.
- References:
std::match_results< _Bi_iter, _Alloc >::ready(), andstd::match_results< _Bi_iter, _Alloc >::size()
π― position
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> difference_type std::match_results<
_Bi_iter, _Alloc >::position (size_type __sub = 0) const [inline]
Gets the offset of the beginning of the indicated submatch.
Parameters:
__subindicates the submatch.
Precondition: ready() == true
This function returns the offset from the beginning of the target sequence to the beginning of the submatch, unless the value of __sub is zero (the default), in which case this function returns the offset from the beginning of the target sequence to the beginning of the match.
- References:
std::distance()
πΈ prefix
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_reference std::match_results<
_Bi_iter, _Alloc >::prefix () const [inline]
Gets a sub_match representing the match prefix.
Precondition: ready() == true
This function gets a reference to a sub_match object representing the part of the target range between the start of the target range and the start of the match.
- References:
std::match_results< _Bi_iter, _Alloc >::empty(), andstd::match_results< _Bi_iter, _Alloc >::ready() - Referenced by:
std::match_results< _Bi_iter, _Alloc >::operator==()
β
ready
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> bool std::match_results< _Bi_iter,
_Alloc >::ready () const [inline], [noexcept]
Indicates if the match_results is ready. like, is the result state fully established or are we still waiting? β³
Return values:
trueβ The object has a fully-established result state.falseβ The object is not ready.- Referenced by:
std::match_results< _Bi_iter, _Alloc >::operator==(),std::match_results< _Bi_iter, _Alloc >::operator[](),std::match_results< _Bi_iter, _Alloc >::prefix(), andstd::match_results< _Bi_iter, _Alloc >::suffix()
π size
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> size_type std::match_results< _Bi_iter,
_Alloc >::size () const [inline], [noexcept]
Gets the number of matches and submatches. The number of matches for a given regular expression will be either 0 if there was no match or mark_count() + 1 if a match was successful. Some matches may be empty.
Returns:
- the number of matches found.
- Referenced by:
std::match_results< _Bi_iter, _Alloc >::operator==(), andstd::match_results< _Bi_iter, _Alloc >::operator[]()
π¦ str
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> string_type std::match_results<
_Bi_iter, _Alloc >::str (size_type __sub = 0) const [inline]
Gets the match or submatch converted to a string type.
Parameters:
__subindicates the submatch.
Precondition: ready() == true
This function gets the submatch (or match, if __sub is zero) extracted from the target range and converted to the associated string type.
π suffix
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> const_reference std::match_results<
_Bi_iter, _Alloc >::suffix () const [inline]
Gets a sub_match representing the match suffix.
Precondition: ready() == true
This function gets a reference to a sub_match object representing the part of the target range between the end of the match and the end of the target range.
- References:
std::match_results< _Bi_iter, _Alloc >::empty(), andstd::match_results< _Bi_iter, _Alloc >::ready() - Referenced by:
std::match_results< _Bi_iter, _Alloc >::operator==()
π
swap
template<typename _Bi_iter , typename _Alloc =
allocator<sub_match<_Bi_iter> >> void std::match_results< _Bi_iter,
_Alloc >::swap (match_results< _Bi_iter, _Alloc > & __that) [inline],
[noexcept]
Swaps the contents of two match_results. trading places, but make it regex β¨π
- References:
std::match_results< _Bi_iter, _Alloc >::swap(), andstd::vector< _Tp, _Alloc >::swap() - Referenced by:
std::match_results< _Bi_iter, _Alloc >::swap()
π Author π
Generated automatically by Doxygen for libstdc++ from the source code.
and thatβs the whole page, bestie π«Άπ huge thanks to the libstdc++ source/version and date sitting pretty in the footer β couldnβt have done this little tour without them. mwah! πβ¨
π¦ where this page comes from
- ubuntu noble: libstdc++-14-doc 14-20240412-0ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms