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 ;
(C++11 이후)

정규 표현식 내에 표시된 하위 표현식(캡처 그룹이라고도 함)의 개수를 반환합니다.

목차

매개변수

(없음)

반환값

정규 표현식 내에 표시된 하위 표현식의 수입니다.

예외

구현 정의 예외를 던질 수 있습니다.

예제

#include <iostream>
#include <regex>
int main()
{    
    std::regex r1{"abcde"};
    std::cout << "r1 has " << r1.mark_count() << " subexpressions" << '\n';
    // 예상: 0
    std::regex r2{"ab(c)de"};
    std::cout << "r2 has " << r2.mark_count() << " subexpressions" << '\n';
    // 예상: 1
    std::regex r3{"a(bc)d(e)"}; 
    std::cout << "r3 has " << r3.mark_count() << " subexpressions" << '\n';
    // 예상: 2
    // 중첩된 하위 표현식
    std::regex r4{"abc(de(fg))"};
    std::cout << "r4 has " << r4.mark_count() << " subexpressions" << '\n';
    // 예상: 2
    // 이스케이프된 괄호
    std::regex r5{"a(bc\\(\\)de)"};
    std::cout << "r5 has " << r5.mark_count() << " subexpressions" << '\n';
    // 예상: 1
    // nosubs 플래그 사용
    std::regex r6{"ab(c)de", std::regex_constants::nosubs};
    std::cout << "r6 has " << r6.mark_count() << " subexpressions" << '\n';
    // 예상: 0
}

출력:

r1 has 0 subexpressions
r2 has 1 subexpressions
r3 has 2 subexpressions
r4 has 2 subexpressions
r5 has 1 subexpressions
r6 has 0 subexpressions