Namespaces
Variants

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

From es.cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
regex_iterator ( ) ;
(1) (desde 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) (desde C++11)
regex_iterator ( const regex_iterator & ) ;
(3) (desde C++11)
regex_iterator ( BidirIt, BidirIt,

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

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

Construye un nuevo regex_iterator :

1) Constructor por defecto. Construye un iterador de fin de secuencia.
2) Construye un regex_iterator a partir de la secuencia de caracteres [ a , b ) , la expresión regular re , y un indicador m que gobierna el comportamiento de coincidencia. Este constructor realiza una llamada inicial a std::regex_search con estos datos. Si el resultado de esta llamada inicial es false , * this se establece como un iterador de fin de secuencia.
3) Copia un regex_iterator .
4) La sobrecarga (2) no está permitida ser llamada con una expresión regular temporal, ya que el iterador devuelto sería inmediatamente invalidado.

Parámetros

a - LegacyBidirectionalIterator al inicio de la secuencia de caracteres objetivo
b - LegacyBidirectionalIterator al final de la secuencia de caracteres objetivo
re - expresión regular utilizada para buscar en la secuencia de caracteres objetivo
m - banderas que controlan el comportamiento de re

Ejemplo

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

Salida:

password

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2332 C++11 un regex_iterator construido desde un temporal
basic_regex se volvía inválido inmediatamente
dicha construcción se deshabilita mediante una sobrecarga eliminada