Localization library | |||||||||||||||||||||||||
Regular expressions library(C++11) | |||||||||||||||||||||||||
Formatting library(C++20) | |||||||||||||||||||||||||
Null-terminated sequence utilities | |||||||||||||||||||||||||
Byte strings | |||||||||||||||||||||||||
Multibyte strings | |||||||||||||||||||||||||
Wide strings | |||||||||||||||||||||||||
Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Text encoding identifications | |||||||||||||||||||||||||
|
Classes | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Algorithms | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Iterators | ||||
(C++11) | ||||
(C++11) | ||||
Exceptions | ||||
(C++11) | ||||
Traits | ||||
(C++11) | ||||
Constants | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Regex Grammar | ||||
(C++11) |
Member Functions | ||||
Observers | ||||
basic_regex::mark_count | ||||
Locale | ||||
Modifiers | ||||
Constants | ||||
Non-member Functions | ||||
Deduction guides(C++17) |
unsigned mark_count()const; | (since C++11) | |
Returns the number of marked sub-expressions (also known as capture groups) within the regular expression.
Contents |
(none)
The number of marked sub-expressions within the regular expression.
May throw implementation-defined exceptions.
#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-expressionsstd::regex r4{"abc(de(fg))"};std::cout<<"r4 has "<< r4.mark_count()<<" subexpressions"<<'\n';// Expected: 2 // Escaped parenthesesstd::regex r5{"a(bc\\(\\)de)"};std::cout<<"r5 has "<< r5.mark_count()<<" subexpressions"<<'\n';// Expected: 1 // Using nosubs flagstd::regex r6{"ab(c)de",std::regex_constants::nosubs};std::cout<<"r6 has "<< r6.mark_count()<<" subexpressions"<<'\n';// Expected: 0}
Output:
r1 has 0 subexpressionsr2 has 1 subexpressionsr3 has 2 subexpressionsr4 has 2 subexpressionsr5 has 1 subexpressionsr6 has 0 subexpressions