std::basic_regex<CharT,Traits>:: mark_count
From cppreference.net
<
cpp
|
regex
|
basic regex
|
unsigned
mark_count
(
)
const
;
|
(depuis C++11) | |
Retourne le nombre de sous-expressions marquées (également appelées groupes de capture) dans l'expression régulière.
Table des matières |
Paramètres
(aucun)
Valeur de retour
Le nombre de sous-expressions marquées dans l'expression régulière.
Exceptions
Peut lever des exceptions définies par l'implémentation.
Exemple
Exécuter ce code
#include <iostream> #include <regex> int main() { std::regex r1{"abcde"}; std::cout << "r1 has " << r1.mark_count() << " subexpressions" << '\n'; // Attendu : 0 std::regex r2{"ab(c)de"}; std::cout << "r2 has " << r2.mark_count() << " subexpressions" << '\n'; // Attendu : 1 std::regex r3{"a(bc)d(e)"}; std::cout << "r3 has " << r3.mark_count() << " subexpressions" << '\n'; // Attendu : 2 // Sous-expressions imbriquées std::regex r4{"abc(de(fg))"}; std::cout << "r4 has " << r4.mark_count() << " subexpressions" << '\n'; // Attendu : 2 // Parenthèses échappées std::regex r5{"a(bc\\(\\)de)"}; std::cout << "r5 has " << r5.mark_count() << " subexpressions" << '\n'; // Attendu : 1 // Utilisation du flag nosubs std::regex r6{"ab(c)de", std::regex_constants::nosubs}; std::cout << "r6 has " << r6.mark_count() << " subexpressions" << '\n'; // Attendu : 0 }
Sortie :
r1 has 0 subexpressions r2 has 1 subexpressions r3 has 2 subexpressions r4 has 2 subexpressions r5 has 1 subexpressions r6 has 0 subexpressions