table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::basic_regex::mark_count(3) | C++ Standard Libary | std::basic_regex::mark_count(3) | 
NAME¶
std::basic_regex::mark_count - std::basic_regex::mark_count
Synopsis¶
unsigned mark_count() const; (since C++11)
  
   Returns the number of marked sub-expressions (also known as capture groups)
    within
  
   the regular expression.
Parameters¶
(none)
Return value¶
The number of marked sub-expressions within the regular expression.
Exceptions¶
May throw implementation-defined exceptions.
Example¶
// Run this code
  
   #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-expressions
  
   std::regex r4{"abc(de(fg))"};
  
   std::cout << "r4 has " << r4.mark_count() <<
    " subexpressions" << '\n';
  
   // Expected: 2
  
   // Escaped parentheses
  
   std::regex r5{"a(bc\\(\\)de)"};
  
   std::cout << "r5 has " << r5.mark_count() <<
    " subexpressions" << '\n';
  
   // Expected: 1
  
   // Using nosubs flag
  
   std::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
| 2024.06.10 | http://cppreference.com |