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