std::sub_match (3) - Linux Manuals

std::sub_match: std::sub_match


std::sub_match - std::sub_match


Defined in header <regex>
class BidirIt (since C++11)
> class sub_match;

The class template sub_match is used by the regular expression engine to denote sequences of characters matched by marked sub-expressions. A match is a [begin, end) pair within the target range matched by the regular expression, but with additional observer functions to enhance code clarity.
Only the default constructor is publicly accessible. Instances of sub_match are normally constructed and populated as a part of a std::match_results container during the processing of one of the regex algorithms.
The member functions return defined default values unless the matched member is true.
sub_match inherits from std::pair<BidirIt, BidirIt>, although it cannot be treated as a std::pair object because member functions such as swap and assignment will not work as expected.

Type requirements

BidirIt must meet the requirements of LegacyBidirectionalIterator.


Several specializations for common character sequence types are provided:

Defined in header <regex>
Type Definition
csub_match sub_match<const char*>
wcsub_match sub_match<const wchar_t*>
ssub_match sub_match<std::string::const_iterator>
wssub_match sub_match<std::wstring::const_iterator>

Member types

Member type Definition
iterator BidirIt
value_type std::iterator_traits<BidirIt>::value_type
difference_type std::iterator_traits<BidirIt>::difference_type
string_type std::basic_string<value_type>

Member objects

             Indicates if this match was successful
bool matched (public member object)

Inherited from std::pair

               Start of the match sequence.
BidirIt first (public member object)
               One-past-the-end of the match sequence.
BidirIt second (public member object)

Member functions

                     constructs the match object
constructor (public member function)


                     returns the length of the match (if any)
length (public member function)
                     converts to the underlying string type
str (public member function)
                     compares matched subsequence (if any)
compare (public member function)

Non-member functions

operator!= compares two sub_match objects
operator< (function template)
           outputs the matched character subsequence
operator<< (function template)

See also

regex_token_iterator iterates through regex submatches
                     (class template)