Udostępnij za pośrednictwem


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.pregexi 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