Open In App

match_results begin() and end() function in C++ STL

Improve
Improve
Like Article
Like
Save
Share
Report

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:

CPP




// 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;
}


Output: 

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

CPP




// 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;
}


Output: 

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.


Last Updated : 17 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads