Namespaces
Variants

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

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
unsigned mark_count ( ) const ;
(seit C++11)

Gibt die Anzahl der markierten Teilausdrücke (auch bekannt als Erfassungsgruppen) innerhalb des regulären Ausdrucks zurück.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Die Anzahl der markierten Teilausdrücke innerhalb des regulären Ausdrucks.

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Beispiel

#include <iostream>
#include <regex>
int main()
{    
    std::regex r1{"abcde"};
    std::cout << "r1 hat " << r1.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 0
    std::regex r2{"ab(c)de"};
    std::cout << "r2 hat " << r2.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 1
    std::regex r3{"a(bc)d(e)"}; 
    std::cout << "r3 hat " << r3.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 2
    // Verschachtelte Teilausdrücke
    std::regex r4{"abc(de(fg))"};
    std::cout << "r4 hat " << r4.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 2
    // Maskierte Klammern
    std::regex r5{"a(bc\\(\\)de)"};
    std::cout << "r5 hat " << r5.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 1
    // Verwendung des nosubs-Flags
    std::regex r6{"ab(c)de", std::regex_constants::nosubs};
    std::cout << "r6 hat " << r6.mark_count() << " Teilausdrücke" << '\n';
    // Erwartet: 0
}

Ausgabe:

r1 hat 0 Teilausdrücke
r2 hat 1 Teilausdrücke
r3 hat 2 Teilausdrücke
r4 hat 2 Teilausdrücke
r5 hat 1 Teilausdrücke
r6 hat 0 Teilausdrücke