Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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