regex_iterator — Klasa
Iterator, klasa dopasowań.
Składnia
template<class BidIt,
class Elem = typename std::iterator_traits<BidIt>::value_type,
class RxTraits = regex_traits<Elem> >
class regex_iterator
Parametry
BidIt
Typ iteratora dla podmatów.
Elem
Typ elementów, do których ma pasować.
RXtraits
Klasa cech dla elementów.
Uwagi
Szablon klasy opisuje stały obiekt iteratora do przodu. Wyodrębnia obiekty typu match_results<BidIt>
przez wielokrotne stosowanie obiektu *pregex
wyrażenia regularnego do sekwencji znaków zdefiniowanej przez zakres [begin, end)
iteratora .
Konstruktory
Konstruktor | opis |
---|---|
regex_iterator | Konstruuje iterator. |
Typedefs
Nazwa typu | opis |
---|---|
difference_type | Typ różnicy iteratora. |
iterator_category | Typ kategorii iteratora. |
wskaźnik | Typ wskaźnika do dopasowania. |
odniesienie | Typ odwołania do dopasowania. |
regex_type | Typ wyrażenia regularnego do dopasowania. |
value_type | Typ dopasowania. |
Operatory
Operator | opis |
---|---|
operator!= | Porównuje iteratory pod kątem nierówności. |
operator* | Uzyskuje dostęp do wyznaczonego dopasowania. |
operator++ | Zwiększa iterator. |
operator = | Porównuje iteratory pod kątem równości. |
operator-> | Uzyskuje dostęp do wyznaczonego dopasowania. |
Wymagania
Nagłówek:<regex>
Przestrzeń nazw: std
Przykłady
Zobacz następujące artykuły, aby zapoznać się z przykładami w wyrażeniach regularnych:
// 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
Typ różnicy iteratora.
typedef std::ptrdiff_t difference_type;
Uwagi
Typ jest synonimem .std::ptrdiff_t
regex_iterator::iterator_category
Typ kategorii iteratora.
typedef std::forward_iterator_tag iterator_category;
Uwagi
Typ jest synonimem .std::forward_iterator_tag
regex_iterator::operator!=
Porównuje iteratory pod kątem nierówności.
bool operator!=(const regex_iterator& right);
Parametry
Prawy
Iterator do porównania.
Uwagi
Funkcja składowa zwraca wartość !(*this == right)
.
regex_iterator::operator*
Uzyskuje dostęp do wyznaczonego dopasowania.
const match_results<BidIt>& operator*();
Uwagi
Funkcja składowa zwraca przechowywaną wartość match
.
regex_iterator::operator++
Zwiększa iterator.
regex_iterator& operator++();
regex_iterator& operator++(int);
Uwagi
Jeśli bieżące dopasowanie nie zawiera żadnych znaków, pierwszy operator wywołuje regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null)
metodę ; w przeciwnym razie przesunie ona przechowywaną wartość begin
, aby wskazać pierwszy znak po bieżącym dopasowaniu, a następnie wywołuje metodę regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail)
. W obu przypadkach, jeśli wyszukiwanie zakończy się niepowodzeniem, operator ustawia obiekt na iterator końca sekwencji. Operator zwraca obiekt.
Drugi operator tworzy kopię obiektu, zwiększa obiekt, a następnie zwraca kopię.
regex_iterator::operator=
Porównuje iteratory pod kątem równości.
bool operator==(const regex_iterator& right);
Parametry
Prawy
Iterator do porównania.
Uwagi
Funkcja składowa zwraca wartość true, jeśli i prawo są iteratorami końca sekwencji lub jeśli żadna z nich nie jest iteratorem końca sekwencji i begin == right.begin
, end == right.end
, pregex == right.pregex
i flags == right.flags
. *this
W przeciwnym razie zwraca wartość false.
regex_iterator::operator->
Uzyskuje dostęp do wyznaczonego dopasowania.
const match_results<BidIt> * operator->();
Uwagi
Funkcja składowa zwraca adres przechowywanej wartości match
.
regex_iterator::p ointer
Typ wskaźnika do dopasowania.
typedef match_results<BidIt> *pointer;
Uwagi
Typ jest synonimem match_results<BidIt>*
, gdzie BidIt
jest parametrem szablonu.
regex_iterator::reference
Typ odwołania do dopasowania.
typedef match_results<BidIt>& reference;
Uwagi
Typ jest synonimem match_results<BidIt>&
, gdzie BidIt
jest parametrem szablonu.
regex_iterator::regex_iterator
Konstruuje iterator.
regex_iterator();
regex_iterator(BidIt first,
BidIt last,
const regex_type& re,
regex_constants::match_flag_type f = regex_constants::match_default);
Parametry
pierwszy
Początek sekwencji do dopasowania.
ostatni
Koniec sekwencji, która ma być zgodna.
Ponownie
Wyrażenie regularne dla dopasowań.
f
Flagi dopasowań.
Uwagi
Pierwszy konstruktor tworzy iterator końca sekwencji. Drugi konstruktor inicjuje przechowywaną wartość begin
jako pierwszą, przechowywaną wartość end
z ostatnim, przechowywaną wartość pregex
z wartością &re
, oraz przechowywaną wartość flags
za pomocą f. Następnie wywołuje metodę regex_search(begin, end, match, *pregex, flags)
. Jeśli wyszukiwanie zakończy się niepowodzeniem, konstruktor ustawia obiekt na iterator końca sekwencji.
regex_iterator::regex_type
Typ wyrażenia regularnego do dopasowania.
typedef basic_regex<Elem, RXtraits> regex_type;
Uwagi
Typedef jest synonimem .basic_regex<Elem, RXtraits>
regex_iterator::value_type
Typ dopasowania.
typedef match_results<BidIt> value_type;
Uwagi
Typ jest synonimem match_results<BidIt>
, gdzie BidIt
jest parametrem szablonu.
Zobacz też
<regex>
regex_constants, klasa
regex_error, klasa
<funkcje wyrażenia regularnego>
regex_iterator, klasa
<Operatory wyrażenia> regularnego
regex_token_iterator, klasa
regex_traits, klasa
<definicje typów wyrażeń> regularnych