Namespaces
Variants
Actions

std::basic_regex<CharT,Traits>::mark_count

From cppreference.com
< cpp‎ | regex‎ | basic regex
 
 
 
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
 
 
unsigned mark_count()const;
(since C++11)

Returns the number of marked sub-expressions (also known as capture groups) within the regular expression.

Contents

[edit]Parameters

(none)

[edit]Return value

The number of marked sub-expressions within the regular expression.

[edit]Exceptions

May throw implementation-defined exceptions.

[edit]Example

#include <iostream>#include <regex>   int main(){std::regex r1{"abcde"};std::cout<<"r1 has "<< r1.mark_count()<<" subexpressions"<<'\n';// Expected: 0   std::regex r2{"ab(c)de"};std::cout<<"r2 has "<< r2.mark_count()<<" subexpressions"<<'\n';// Expected: 1   std::regex r3{"a(bc)d(e)"};std::cout<<"r3 has "<< r3.mark_count()<<" subexpressions"<<'\n';// Expected: 2   // Nested sub-expressionsstd::regex r4{"abc(de(fg))"};std::cout<<"r4 has "<< r4.mark_count()<<" subexpressions"<<'\n';// Expected: 2   // Escaped parenthesesstd::regex r5{"a(bc\\(\\)de)"};std::cout<<"r5 has "<< r5.mark_count()<<" subexpressions"<<'\n';// Expected: 1   // Using nosubs flagstd::regex r6{"ab(c)de", std::regex_constants::nosubs};std::cout<<"r6 has "<< r6.mark_count()<<" subexpressions"<<'\n';// Expected: 0}

Output:

r1 has 0 subexpressions r2 has 1 subexpressions r3 has 2 subexpressions r4 has 2 subexpressions r5 has 1 subexpressions r6 has 0 subexpressions
close