Compartir a través de


regex_iterator (Clase)

Clase de iterador para las coincidencias.

Sintaxis

template<class BidIt,
   class Elem = typename std::iterator_traits<BidIt>::value_type,
   class RxTraits = regex_traits<Elem> >
class regex_iterator

Parámetros

BidIt
El tipo de iterador para subcoincidencias.

Elem
Tipo de los elementos que debe coincidir.

RXtraits
Clase Traits para los elementos.

Comentarios

La plantilla de clase describe un objeto constante de iterador hacia delante. Extrae objetos de tipo match_results<BidIt> aplicando varias veces su propio objeto de expresión regular *pregex a la secuencia de caracteres definida por el rango de iterador [begin, end).

Constructores

Constructor Descripción
regex_iterator Construye el iterador.

Typedefs

Nombre de tipo Descripción
difference_type El tipo de diferencia de un iterador.
iterator_category Tipo de la categoría del iterador.
pointer El tipo de un puntero a una coincidencia.
referencia El tipo de una referencia a una coincidencia.
regex_type El tipo de expresión regular que debe coincidir.
value_type Tipo de una coincidencia.

Operadores

Operador Descripción
operator!= Compara iteradores para buscar desigualdad.
operator* Tiene acceso a la coincidencia designada.
operator++ Incrementa el iterador almacenado.
operator= Compara iteradores para buscar igualdad.
operator-> Tiene acceso a la coincidencia designada.

Requisitos

Encabezado:<regex>

Espacio de nombres: std

Ejemplos

Para obtener ejemplos de expresiones regulares, vea los artículos siguientes:

// std__regex__regex_iterator.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>

typedef std::regex_iterator<const char *> Myiter;
int main()
    {
    const char *pat = "axayaz";
    Myiter::regex_type rx("a");
    Myiter next(pat, pat + strlen(pat), rx);
    Myiter end;

    for (; next != end; ++next)
        std::cout << "match == " << next->str() << std::endl;

// other members
    Myiter it1(pat, pat + strlen(pat), rx);
    Myiter it2(it1);
    next = it1;

    Myiter::iterator_category cat = std::forward_iterator_tag();
    Myiter::difference_type dif = -3;
    Myiter::value_type mr = *it1;
    Myiter::reference ref = mr;
    Myiter::pointer ptr = &ref;

    dif = dif; // to quiet "unused" warnings
    ptr = ptr;

    return (0);
    }
match == a
match == a
match == a

regex_iterator::d ifference_type

El tipo de diferencia de un iterador.

typedef std::ptrdiff_t difference_type;

Comentarios

El tipo es un sinónimo de std::ptrdiff_t.

regex_iterator::iterator_category

Tipo de la categoría del iterador.

typedef std::forward_iterator_tag iterator_category;

Comentarios

El tipo es un sinónimo de std::forward_iterator_tag.

regex_iterator::operator!=

Compara iteradores para buscar desigualdad.

bool operator!=(const regex_iterator& right);

Parámetros

right
Iterador con el que se compara.

Comentarios

La función miembro devuelve !(*this == right).

regex_iterator::operator*

Tiene acceso a la coincidencia designada.

const match_results<BidIt>& operator*();

Comentarios

La función miembro devuelve el valor almacenado match.

regex_iterator::operator++

Incrementa el iterador almacenado.

regex_iterator& operator++();
regex_iterator& operator++(int);

Comentarios

Si la coincidencia actual no tiene ningún carácter, el primer operador llama a regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null); de lo contrario, pasa el valor almacenado begin para señalar el primer carácter después de la coincidencia actual y luego llama a regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). En cualquiera de los casos, si se produce un error en la búsqueda, el operador establece el objeto en un iterador de final de la secuencia. El operador devuelve el objeto.

El segundo operador realiza una copia del objeto, incrementa el objeto y devuelve la copia.

regex_iterator::operator=

Compara iteradores para buscar igualdad.

bool operator==(const regex_iterator& right);

Parámetros

right
Iterador con el que se compara.

Comentarios

La función miembro devuelve true si *this y right son los iteradores de final de secuencia o si ninguno es un iterador de final de secuencia y begin == right.begin, end == right.end, pregex == right.pregex y flags == right.flags. De lo contrario, devuelve false.

regex_iterator::operator->

Tiene acceso a la coincidencia designada.

const match_results<BidIt> * operator->();

Comentarios

La función miembro devuelve la dirección del valor almacenado match.

regex_iterator::p ointer

El tipo de un puntero a una coincidencia.

typedef match_results<BidIt> *pointer;

Comentarios

El tipo es un sinónimo de match_results<BidIt>*, donde BidIt es el parámetro de plantilla.

regex_iterator::reference

El tipo de una referencia a una coincidencia.

typedef match_results<BidIt>& reference;

Comentarios

El tipo es un sinónimo de match_results<BidIt>&, donde BidIt es el parámetro de plantilla.

regex_iterator::regex_iterator

Construye el iterador.

regex_iterator();

regex_iterator(BidIt first,
    BidIt last,
    const regex_type& re,
    regex_constants::match_flag_type f = regex_constants::match_default);

Parámetros

first
Principio de la secuencia que debe coincidir.

last
Final de la secuencia que debe coincidir.

re
Expresión regular para las coincidencias.

f
Marcadores para coincidencias.

Comentarios

El primer constructor crea un iterador de final de secuencia. El segundo constructor inicializa el valor almacenado begin con first, el valor almacenado end con last, el valor almacenado pregex con &re, y el valor almacenado flags con f. A continuación, llama a regex_search(begin, end, match, *pregex, flags). Si se produce un error en la búsqueda, el constructor establece el objeto en un iterador de final de secuencia.

regex_iterator::regex_type

El tipo de expresión regular que debe coincidir.

typedef basic_regex<Elem, RXtraits> regex_type;

Comentarios

La definición de tipo es un sinónimo de basic_regex<Elem, RXtraits>.

regex_iterator::value_type

Tipo de una coincidencia.

typedef match_results<BidIt> value_type;

Comentarios

El tipo es un sinónimo de match_results<BidIt>, donde BidIt es el parámetro de plantilla.

Consulte también

<regex>
regex_constants (Clase)
regex_error (Clase)
<regex> functions
regex_iterator (Clase)
<regex> operators
regex_token_iterator (Clase)
regex_traits (Clase)
<regex> typedefs