Espacios de nombres
Variantes
Acciones

std::basic_regex::mark_count

De cppreference.com
< cpp‎ | regex‎ | basic regex
 
 
Biblioteca de expresiones regulares
Clases
(C++11)
Algoritmos
Iteradores
Excepciones
Rasgos
Constantes
(C++11)
Gramática de las expresiones regulares
 
 
unsigned mark_count() const;
(desde C++11)

Devuelve el número de subexpresiones marcadas (también conocidas como grupos de captura) dentro de la expresión regular.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

El número de subexpresiones marcadas dentro de la expresión regular.

[editar] Excepciones

Puede lanzar excepciones definidas por la implementación.

[editar] Ejemplo

#include <iostream>
#include <regex>
 
int main()
{    
    std::regex r1{"abcde"};
    std::cout << "r1 tiene " << r1.mark_count() << " subexpresiones" <<  '\n';
    //  Esperado: 0
 
    std::regex r2{"ab(c)de"};
    std::cout << "r2 tiene " << r2.mark_count() << " subexpresiones" << '\n';
    //  Esperado: 1
 
    std::regex r3{"a(bc)d(e)"}; 
    std::cout << "r3 tiene " << r3.mark_count() << " subexpresiones" << '\n';
    //  Esperado: 2
 
    //  subexpresiones anidadas
    std::regex r4{"abc(de(fg))"};
    std::cout << "r4 tiene " << r4.mark_count() << " subexpresiones" << '\n';
    //  Esperado: 2
 
    //  paréntesis escapados
    std::regex r5{"a(bc\\(\\)de)"};
    std::cout << "r5 tiene " << r5.mark_count() << " subexpresiones" << '\n';
    //  Esperado: 1
 
    //  usando indicador nosubs
    std::regex r6 {"ab(c)de", std::regex_constants::nosubs};
    std::cout << "r6 tiene " << r6.mark_count() << " subexpresiones" << '\n';
    //  Esperado: 0
}

Salida:

r1 tiene 0 subexpresiones
r2 tiene 1 subexpresiones
r3 tiene 2 subexpresiones
r4 tiene 2 subexpresiones
r5 tiene 1 subexpresiones
r6 tiene 0 subexpresiones