Freigeben über


regex_iterator-Klasse

Iteratorklasse für Übereinstimmungen.

Syntax

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

Parameter

BidIt
Der Itertatortyp für Teilübereinstimmungen.

Elem
Der zu entsprechende Elementtyp.

RX-Merkmale
Merkmalklasse für Elemente.

Hinweise

Die Klassenvorlage beschreibt ein Konstantenweiterleitungs-Iteratorobjekt. Anschließend extrahiert sie Objekte des Typs match_results<BidIt> durch wiederholtes Anwenden seines regulären Ausdrucksobjekts *pregex auf die vom Iteratorbereich [begin, end)definierte Zeichenfolge.

Konstruktoren

Konstruktor Beschreibung
regex_iterator Erstellt den Iterator.

TypeDefs

Typname Beschreibung
difference_type Der Typ einer Iteratordifferenz.
Iterator_category Der Typ der Iteratorkategorie.
pointer Der Typ eines Zeigers auf eine Übereinstimmung.
reference Der Typ eines Verweises auf eine Übereinstimmung.
regex_type Der Typ des regulären Ausdrucks, der übereinstimmen soll.
value_type Der Typ einer Übereinstimmung.

Operatoren

Operator Beschreibung
operator!= Vergleicht Iteratoren auf Ungleichheit.
operator* Greift auf die gekennzeichnete Übereinstimmung zu.
operator++ Erhöht den Iterator.
operator= Vergleicht Iteratoren auf Gleichheit.
operator-> Greift auf die gekennzeichnete Übereinstimmung zu.

Anforderungen

Header:<regex>

Namespace: std

Beispiele

Beispiele für reguläre Ausdrücke finden Sie in den folgenden Artikeln:

// 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

Der Typ einer Iteratordifferenz.

typedef std::ptrdiff_t difference_type;

Hinweise

Der Typ ist ein Synonym für std::ptrdiff_t.

regex_iterator::iterator_category

Der Typ der Iteratorkategorie.

typedef std::forward_iterator_tag iterator_category;

Hinweise

Der Typ ist ein Synonym für std::forward_iterator_tag.

regex_iterator::operator!=

Vergleicht Iteratoren auf Ungleichheit.

bool operator!=(const regex_iterator& right);

Parameter

right
Der Iterator für den Vergleich.

Hinweise

Die Memberfunktion gibt !(*this == right) zurück.

regex_iterator::operator*

Greift auf die gekennzeichnete Übereinstimmung zu.

const match_results<BidIt>& operator*();

Hinweise

Diese Memberfunktion gibt den gespeicherten Wert matchzurück.

regex_iterator::operator++

Erhöht den Iterator.

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

Hinweise

Wenn die aktuelle Übereinstimmung keine Zeichen enthält, ruft der erste Operator auf regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null); andernfalls wird der gespeicherte Wert begin nach der aktuellen Übereinstimmung auf das erste Zeichen zeigt, und dann wird aufgerufen regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). Schlägt die Suche fehl, legt der Operator in beiden Fällen das Objekt auf einen Sequenzende-Iterator fest. Der Operator gibt das Objekt zurück.

Der zweite Operator erstellt eine Kopie des Objekts, erhöht das Objekt und gibt dann die Kopie zurück.

regex_iterator::operator=

Vergleicht Iteratoren auf Gleichheit.

bool operator==(const regex_iterator& right);

Parameter

right
Der Iterator für den Vergleich.

Hinweise

Die Memberfunktion gibt true zurück, wenn und rechts beide End-of-Sequence-Iteratoren sind oder wenn keines der End-of-Sequence-Iterator und begin == right.begin, end == right.end, pregex == right.pregexund flags == right.flags.*this Andernfalls wird „false“ zurückgegeben.

regex_iterator::operator->

Greift auf die gekennzeichnete Übereinstimmung zu.

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

Hinweise

Die Memberfunktion gibt die Adresse des gespeicherten Werts matchzurück.

regex_iterator::p ointer

Der Typ eines Zeigers auf eine Übereinstimmung.

typedef match_results<BidIt> *pointer;

Hinweise

Der Typ ist ein Synonym für match_results<BidIt>*, wobei BidIt der Vorlagenparameter ist.

regex_iterator::reference

Der Typ eines Verweises auf eine Übereinstimmung.

typedef match_results<BidIt>& reference;

Hinweise

Der Typ ist ein Synonym für match_results<BidIt>&, wobei BidIt der Vorlagenparameter ist.

regex_iterator::regex_iterator

Erstellt den Iterator.

regex_iterator();

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

Parameter

first
Anfang der Sequenz, die übereinstimmen soll.

last
Ende der Sequenz, die übereinstimmen soll.

Re
Regulärer Ausdruck für Übereinstimmungen.

f
Flags für Übereinstimmungen.

Hinweise

Der erste Konstruktor erstellt einen Sequenzende-Iterator. Der zweite Konstruktor initialisiert den gespeicherten Wert begin zuerst, den gespeicherten Wert end mit der letzten, den gespeicherten Wert pregex mit &re, und den gespeicherten Wert flags mit f. Anschließend wird regex_search(begin, end, match, *pregex, flags)aufgerufen. Wenn bei der Suche ein Fehler auftritt, legt der Konstruktor für das Objekt einen Sequenzende-Iterator fest.

regex_iterator::regex_type

Der Typ des regulären Ausdrucks, der übereinstimmen soll.

typedef basic_regex<Elem, RXtraits> regex_type;

Hinweise

Die Typedef ist ein Synonym für basic_regex<Elem, RXtraits>.

regex_iterator::value_type

Der Typ einer Übereinstimmung.

typedef match_results<BidIt> value_type;

Hinweise

Der Typ ist ein Synonym für match_results<BidIt>, wobei BidIt der Vorlagenparameter ist.

Siehe auch

<regex>
regex_constants-Klasse
regex_error-Klasse
<regex-Funktionen>
regex_iterator-Klasse
<regex-Operatoren>
regex_token_iterator-Klasse
regex_traits-Klasse
<regex> typedefs