# std::sub_match

From cppreference.com
< cpp‎ | regex

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

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.

### Specializations

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

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

## Inherited from std::pair

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

### Member functions

(constructor) | constructs the match object (public member function)
##### Observers
length | returns the length of the match (if any) (public member function)
str operator string_type | converts to the underlying string type (public member function)
compare | compares matched subsequence (if any) (public member function)

### Non-member functions

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

### See also

regex_token_iterator (C++11) | iterates through regex submatches (class template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/regex/sub_match&oldid=103594"