In this example, we can demonstrate the use of match_results objects, which can be passed to regex_match() and regex_search() to get details of matches. Class std::match_results is a template that has to get instantiated by the iterator type of the characters processed. The C++ standard library provides some predefined instantiations:
• smatch: for details of matches in strings
• cmatch: for details of matches in C-strings (const char*)
• wsmatch: for details of matches in wstrings
• wcmatch: for details of matches in wide C-strings (const wchar_t*)
Thus, if we call regex_match() or regex_search() for C++ strings, type smatch has to be used;
for ordinary string literals, type cmatch has to be used.
What a match_results object yields is shown in detail by the example, where we search for the regular expression
(.*)
in the string data, initialized by the following character sequence:
"XML tag: the value."