Namespaces
Variants
Actions

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

From cppreference.com
< cpp‎ | regex‎ | basic regex
 
C++
 
Text processing library
 
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
 
std::basic_regex
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-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

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant