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.pregex
a .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 &re
a 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