Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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		  2022.07.31	  std::basic_...:mark_count(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::basic_regex::mark_count&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help