smatch is an instantiation of the match_results class template for matches on string objects.
Functions that can be called using smatch:
str(), position(), and length() member functions of the match_results object can be called to get the text that was matched, or the starting position and its length of the match relative to the subject string.
- Call these member functions without a parameter or with 0 as the parameter to get the overall regex match.
- Call them passing 1 or greater to get the match of a particular capturing group.
- The size() member function indicates the number of capturing groups plus one for the overall match.
- Thus you can pass a value up to size()-1 to the other three member functions(str(), position(), length() ).
What is capturing group ?
Example-1: Suppose you create a regex object like : regex re("(geeks)(.*)") Here no of capturing group is = 2 [ one is "geeks" and second is any character after "geeks" ]. Example-2: regex re("a(b)c") Here no of capturing group is = 1[ 'b' is the capturing group]. whatever within '(' and ')' braces is treated as capturing group.
Below is the program to show the working of smatch:
Match size = 3 Whole match : geeksforgeeks First capturing group is 'geeks' which is captured at index 0 Second capturing group is 'forgeeks' which is captured at index 5
- std::regex_match, std::regex_replace() | Regex (Regular Expression) In C++
- smatch max_size() function in C++ STL
- <regex> library in C++ STL
- Program to find all match of a regex in a string
- A Puzzle on C/C++ R-Value Expressions
- Generalized Lambda Expressions in C++14
- Synchronous Chatting Application using C++ boost::asio
- C/C++ For loop with Examples
- How to input a comma separated string in C++?
- Program to Parse a comma separated string in C++
- Difference between Private and Protected in C++ with Example
- Difference between Inheritance and Polymorphism
- Difference between Single and Multiple Inheritance in C++
- Difference between Abstraction and Encapsulation in C++
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.