Namespaces
Variants

std::regex_iterator<BidirIt,CharT,Traits>:: regex_iterator

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
regex_iterator ( ) ;
(1) (depuis C++11)
regex_iterator ( BidirIt a, BidirIt b,

const regex_type & re,
std:: regex_constants :: match_flag_type m =

std:: regex_constants :: match_default ) ;
(2) (depuis C++11)
regex_iterator ( const regex_iterator & ) ;
(3) (depuis C++11)
regex_iterator ( BidirIt, BidirIt,

const regex_type && ,
std:: regex_constants :: match_flag_type =

std:: regex_constants :: match_default ) = delete ;
(4) (depuis C++11)

Construit un nouveau regex_iterator :

1) Constructeur par défaut. Construit un itérateur de fin de séquence.
2) Construit un regex_iterator à partir de la séquence de caractères [ a , b ) , de l'expression régulière re et d'un indicateur m qui régit le comportement de correspondance. Ce constructeur effectue un appel initial à std::regex_search avec ces données. Si le résultat de cet appel initial est false , * this est défini comme un itérateur de fin de séquence.
3) Copie un regex_iterator .
4) La surcharge (2) ne peut pas être appelée avec une expression régulière temporaire, car l'itérateur retourné serait immédiatement invalidé.

Paramètres

a - LegacyBidirectionalIterator vers le début de la séquence de caractères cible
b - LegacyBidirectionalIterator vers la fin de la séquence de caractères cible
re - expression régulière utilisée pour rechercher dans la séquence de caractères cible
m - drapeaux qui régissent le comportement de re

Exemple

#include <iostream>
#include <regex>
#include <string_view>
int main()
{
    constexpr std::string_view str{R"(
        #ONE: *p = &Mass;
        #Two: MOV %rd, 42
    )"};
    const std::regex re("[a-w]");
    // create regex_iterator, overload (2)
    auto it = std::regex_iterator<std::string_view::iterator>
    {
        str.cbegin(), str.cend(),
        re // re is lvalue; if an immediate expression was used
           // instead, e.g. std::regex{"[a-z]"}, this would
           // produce an error since overload (4) is deleted
    };
    for (decltype(it) last /* overload (1) */; it != last; ++it)
        std::cout << (*it).str();
    std::cout << '\n';
}

Sortie :

password

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 2332 C++11 un regex_iterator construit à partir d'un
basic_regex temporaire devenait immédiatement invalide
une telle construction est interdite via une surcharge supprimée