Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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