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) (seit 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) (seit C++11)
regex_iterator ( const regex_iterator & ) ;
(3) (seit C++11)
regex_iterator ( BidirIt, BidirIt,

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

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

Konstruiert einen neuen regex_iterator :

1) Standardkonstruktor. Konstruiert einen End-of-Sequence-Iterator.
2) Konstruiert einen regex_iterator aus der Zeichensequenz [ a , b ) , dem regulären Ausdruck re und einem Flag m , das das Suchverhalten steuert. Dieser Konstruktor führt einen initialen Aufruf von std::regex_search mit diesen Daten durch. Wenn das Ergebnis dieses initialen Aufrufs false ist, wird * this auf einen Endsequenz-Iterator gesetzt.
3) Kopiert einen regex_iterator .
4) Die Überladung (2) darf nicht mit einem temporären Regex aufgerufen werden, da der zurückgegebene Iterator sofort ungültig würde.

Parameter

a - LegacyBidirectionalIterator zum Anfang der Zielzeichenfolge
b - LegacyBidirectionalIterator zum Ende der Zielzeichenfolge
re - regulärer Ausdruck zur Suche in der Zielzeichenfolge
m - Flags, die das Verhalten von re steuern

Beispiel

#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';
}

Ausgabe:

password

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 2332 C++11 ein regex_iterator , konstruiert aus einem temporären
basic_regex , wurde sofort ungültig
solche Konstruktion wird durch eine gelöschte Überladung verboten