Sdílet prostřednictvím


regex_iterator – třída

Třída iterátoru pro shody.

Syntaxe

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

Parametry

BidIt
Typ iterátoru pro podsložky.

Elem
Typ prvků, které se mají spárovat.

RXtraits
Třída vlastností prvků.

Poznámky

Šablona třídy popisuje konstantní objekt iterátoru vpřed. Extrahuje objekty typu match_results<BidIt> opakovaným použitím objektu *pregex regulárního výrazu na posloupnost znaků definovanou oblastí [begin, end)iterátoru .

Konstruktory

Konstruktor Popis
regex_iterator Vytvoří iterátor.

Typedefs

Název typu Popis
difference_type Typ rozdílu iterátoru.
iterator_category Typ kategorie iterátoru.
ukazatel Typ ukazatele na shodu.
odkaz Typ odkazu na shodu.
regex_type Typ regulárního výrazu, který se má shodovat.
value_type Typ shody.

Operátory

Operátor Popis
operator!= Porovnává iterátory nerovnosti.
operátor* Přistupuje k určené shodě.
operator++ Zvýší iterátor.
operator= Porovnává iterátory rovnosti.
operátor-> Přistupuje k určené shodě.

Požadavky

Header:<regex>

Namespace: std

Příklady

Příklady regulárních výrazů najdete v následujících článcích:

// 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 rozdílu iterátoru.

typedef std::ptrdiff_t difference_type;

Poznámky

Typ je synonymem pro std::ptrdiff_t.

regex_iterator::iterator_category

Typ kategorie iterátoru.

typedef std::forward_iterator_tag iterator_category;

Poznámky

Typ je synonymem pro std::forward_iterator_tag.

regex_iterator::operator!=

Porovnává iterátory nerovnosti.

bool operator!=(const regex_iterator& right);

Parametry

Vpravo
Iterátor, který se má porovnat.

Poznámky

Členová funkce vrátí !(*this == right).

regex_iterator::operator*

Přistupuje k určené shodě.

const match_results<BidIt>& operator*();

Poznámky

Členová funkce vrátí uloženou hodnotu match.

regex_iterator::operator++

Zvýší iterátor.

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

Poznámky

Pokud aktuální shoda neobsahuje žádné znaky, první operátor zavolá regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null); jinak přejde uloženou hodnotu begin tak, aby odkazovala na první znak po aktuální shodě, pak volá regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). V obou případech, pokud hledání selže operátor nastaví objekt na konec sekvence iterátor. Operátor vrátí objekt.

Druhý operátor vytvoří kopii objektu, zvýší objekt a pak vrátí kopii.

regex_iterator::operator=

Porovnává iterátory rovnosti.

bool operator==(const regex_iterator& right);

Parametry

Vpravo
Iterátor, který se má porovnat.

Poznámky

Členová funkce vrátí hodnotu true, pokud *this a vpravo jsou oba iterátory end-of-sequence, nebo pokud ani jeden není iterátor konce sekvence a begin == right.begin, , end == right.end, pregex == right.pregexa .flags == right.flags V opačném případě vrátí hodnotu false.

regex_iterator::operator->

Přistupuje k určené shodě.

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

Poznámky

Členová funkce vrátí adresu uložené hodnoty match.

regex_iterator::p ointer

Typ ukazatele na shodu.

typedef match_results<BidIt> *pointer;

Poznámky

Typ je synonymem pro match_results<BidIt>*, kde BidIt je parametr šablony.

regex_iterator::reference

Typ odkazu na shodu.

typedef match_results<BidIt>& reference;

Poznámky

Typ je synonymem pro match_results<BidIt>&, kde BidIt je parametr šablony.

regex_iterator::regex_iterator

Vytvoří iterátor.

regex_iterator();

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

Parametry

první
Začátek sekvence, která se má shodovat.

poslední
Konec sekvence, která se má shodovat.

týká se
Regulární výraz pro shody.

f
Příznaky pro shody.

Poznámky

První konstruktor vytvoří iterátor konce sekvence. Druhý konstruktor inicializuje uloženou hodnotu begin s první, uloženou hodnotu end s poslední, uloženou hodnotu pregex s &rea uloženou hodnotu flags s f. Pak zavolá regex_search(begin, end, match, *pregex, flags). Pokud hledání selže, konstruktor nastaví objekt na iterátor konce sekvence.

regex_iterator::regex_type

Typ regulárního výrazu, který se má shodovat.

typedef basic_regex<Elem, RXtraits> regex_type;

Poznámky

Typedef je synonymem pro basic_regex<Elem, RXtraits>.

regex_iterator::value_type

Typ shody.

typedef match_results<BidIt> value_type;

Poznámky

Typ je synonymem pro match_results<BidIt>, kde BidIt je parametr šablony.

Viz také

<regex>
regex_constants – třída
regex_error – třída
<funkce regulárních výrazů>
regex_iterator – třída
<Operátory regulárních výrazů>
regex_token_iterator – třída
regex_traits – třída
<regex> typedefs