Classe regex_iterator
Classe de iterador para correspondências.
Sintaxe
template<class BidIt,
class Elem = typename std::iterator_traits<BidIt>::value_type,
class RxTraits = regex_traits<Elem> >
class regex_iterator
Parâmetros
BidIt
O tipo de iterador para subcorrespondências.
Elem
O tipo de elemento a ser correspondido.
RXtraits
Classe de características para elementos.
Comentários
O modelo de classe descreve um objeto iterador de encaminhamento constante. Ele extrai objetos do tipo match_results<BidIt>
aplicando repetidamente seu objeto de expressão regular *pregex
à sequência de caracteres definida pelo intervalo do iterador [begin, end)
.
Construtores
Construtor | Descrição |
---|---|
regex_iterator | Constrói o iterador. |
Typedefs
Nome do tipo | Descrição |
---|---|
difference_type | O tipo de uma diferença de iterador. |
iterator_category | O tipo da categoria do iterador. |
pointer | O tipo de um ponteiro para uma correspondência. |
referência | O tipo de uma referência de uma correspondência. |
regex_type | O tipo da expressão regular de correspondência. |
value_type | O tipo de uma correspondência. |
Operadores
Operador | Descrição |
---|---|
operator!= | Compara a desigualdade dos iteradores. |
operator* | Acessa a correspondência designada. |
operador++ | Incrementa o iterador. |
operator= | Compara a igualdade dos iteradores. |
operator-> | Acessa a correspondência designada. |
Requisitos
Cabeçalho:<regex>
Namespace: std
Exemplos
Confira os artigos a seguir para ver exemplos de expressões regulares:
// 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 tipo_de_experiência
O tipo de uma diferença de iterador.
typedef std::ptrdiff_t difference_type;
Comentários
O tipo é um sinônimo de std::ptrdiff_t
.
regex_iterator::iterator_category
O tipo da categoria do iterador.
typedef std::forward_iterator_tag iterator_category;
Comentários
O tipo é um sinônimo de std::forward_iterator_tag
.
regex_iterator::operador!=
Compara a desigualdade dos iteradores.
bool operator!=(const regex_iterator& right);
Parâmetros
direita
O iterador a ser comparado.
Comentários
A função membro retorna !(*this == right)
.
regex_iterator::operador*
Acessa a correspondência designada.
const match_results<BidIt>& operator*();
Comentários
A função do membro retorna o valor armazenado match
.
regex_iterator::operador++
Incrementa o iterador.
regex_iterator& operator++();
regex_iterator& operator++(int);
Comentários
Se a correspondência atual não tiver nenhum caractere, o primeiro operador chama regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null)
; caso contrário, ele avança o valor armazenado begin
para apontar para o primeiro caractere após a correspondência atual e chama regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail)
. Em ambos os casos, se a pesquisa falhar, o operador define o objeto como um iterador de fim de sequência. O operador retorna o objeto.
O segundo operador faz uma cópia do objeto, incrementa o objeto e retorna a cópia.
regex_iterator::operator=
Compara a igualdade dos iteradores.
bool operator==(const regex_iterator& right);
Parâmetros
direita
O iterador a ser comparado.
Comentários
A função membro retorna true quando *this
e right são iteradores de fim de sequência ou quando nenhum deles é iterador de fim de sequência e begin == right.begin
, end == right.end
, pregex == right.pregex
e flags == right.flags
. Caso contrário, retorna false.
regex_iterator::operator->
Acessa a correspondência designada.
const match_results<BidIt> * operator->();
Comentários
A função membro retorna o endereço do valor armazenado match
.
regex_iterator::p ointer
O tipo de um ponteiro para uma correspondência.
typedef match_results<BidIt> *pointer;
Comentários
O tipo é um sinônimo de match_results<BidIt>*
, em que BidIt
é o parâmetro de modelo.
regex_iterator::referência
O tipo de uma referência de uma correspondência.
typedef match_results<BidIt>& reference;
Comentários
O tipo é um sinônimo de match_results<BidIt>&
, em que BidIt
é o parâmetro de modelo.
regex_iterator::regex_iterator
Constrói o 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
Início da sequência de correspondência.
last
Fim da sequência de correspondência.
re
Expressão regular para correspondências.
f
Sinalizadores de correspondências.
Comentários
O primeiro construtor cria um iterador de fim de sequência. O segundo construtor inicializa o valor armazenado begin
com first, o valor armazenado end
com last, o valor armazenado pregex
com &re
e o valor armazenado flags
com f. Depois, chama regex_search(begin, end, match, *pregex, flags)
. Se a pesquisa falhar, o construtor define o objeto como um iterador de fim de sequência.
regex_iterator::regex_type
O tipo da expressão regular de correspondência.
typedef basic_regex<Elem, RXtraits> regex_type;
Comentários
O typedef é um sinônimo de basic_regex<Elem, RXtraits>
.
regex_iterator::value_type
O tipo de uma correspondência.
typedef match_results<BidIt> value_type;
Comentários
O tipo é um sinônimo de match_results<BidIt>
, em que BidIt
é o parâmetro de modelo.
Confira também
<regex>
Classe regex_constants
Classe regex_error
Funções <regex>
Classe regex_iterator
Operadores <regex>
Classe regex_token_iterator
Classe regex_traits
<regex> typedefs