match_results::cbegin() is an inbuilt function in C++ STL that returns an iterator that points to the first match in the match_results object.
Syntax:
smatch_name.begin()
Parameters: This function does not accept any parameters.
Return value: This function returns an iterator pointing to the first match in the match_results object. The matches contained in the match_results object are always constant.
Note: The first element always contains the whole regex match while the others contain the particular Capturing Group.
Below program illustrate the above function:
// C++ program to illustrate the // match_results begin() function #include <bits/stdc++.h> using namespace std;
int main()
{ string sp( "geeksforgeeks" );
regex re( "(geeks)(.*)" );
smatch match;
// we can use member function on match
// to extract the matched pattern.
std::regex_match(sp, match, re);
// The size() member function indicates the
// number of capturing groups plus one for the overall match
// match size = Number of capturing group + 1
// (.*) which "forgeeks" ).
cout << "Match size = " << match.size() << endl;
cout << "matches:" << endl;
for (smatch::iterator it = match.begin(); it != match.end(); ++it)
cout << *it << endl;
return 0;
} |
Match size = 3 matches: geeksforgeeks geeks forgeeks
match_results::end() is an inbuilt function in C++ STL that returns an iterator that points to the past-the-end match in the match_results object.
Syntax:
smatch_name.end()
Parameters: This function does not accept any parameters.
Return value: This function returns an iterator pointing to the past-the-end match in the match_results object. The matches contained in the match_results object are always constant.
Note: First element always contains the whole regex match while the others contain the particular Capturing Group.
Below program illustrate the above function
// C++ program to illustrate the // match_results end() function #include <bits/stdc++.h> using namespace std;
int main()
{ string sp( "matchresult" );
regex re( "(match)(.*)" );
smatch match;
// we can use member function on match
// to extract the matched pattern.
std::regex_match(sp, match, re);
// The size() member function indicates the
// number of capturing groups plus one for the overall match
// match size = Number of capturing group + 1
// (.*) which "results" ).
cout << "Match size = " << match.size() << endl;
cout << "matches:" << endl;
for (smatch::iterator it = match.begin(); it != match.end(); ++it)
cout << *it << endl;
return 0;
} |
Match size = 3 matches: matchresult match result
Let us see the differences in a tabular form as follows:
match_results begin() | match_results end() |
It is used to return an iterator pointing to the first match in the match_results object. | It is used to return an iterator pointing to the past-the-end match in the match_results object. |
Its syntax is -: const_iterator begin() const; |
Its syntax is -: const_iterator end() const; |
It does not take any parameters. | It does not take any parameters. |
Its complexity is constant. | Its complexity is constant. |
Its iterator validity does not change. | Its iterator validity does not change. |