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 match
zurü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.pregex
und 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 match
zurü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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für