home | help
std::basic_...:mark_count(3)   C++ Standard Libary  std::basic_...: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

http://cppreference.com 	   2024.06.10	    std::basic_...:mark_count(3)

home | help