std::basic_regex::mark_count
De cppreference.com
<tbody>
</tbody>
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.
Parámetros
(Ninguno)
Valor de retorno
El número de subexpresiones marcadas dentro de la expresión regular.
Excepciones
Puede lanzar excepciones definidas por la implementación.
Ejemplo
Ejecuta este código
#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