std::basic_regex<CharT,Traits>::mark_count - cppreference.com (original) (raw)

| unsigned mark_count() const; | | (since C++11) | | ----------------------------- | | ------------- |

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

[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 #include   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