Namensräume
Varianten
Aktionen

std::regex_iterator<BidirIt,CharT,Traits>::operator++, operator++(int)

Von cppreference.com
 
 
 
Bibliothek für reguläre Ausdrücke
Klassen
(C++11)
Algorithmen
Iteratoren
Ausnahmen
Traits
Konstanten
(C++11)
Reguläre Ausdrucksgrammatiken
 
 
regex_iterator& operator++();
(seit C++11)
regex_iterator operator++( int );
(seit C++11)

Fortschritt des Iterators zum nächsten Treffer.

Zuerst wird eine lokale Variable vom Typ BidirIt mit dem Wert von match[0].second konstruiert.

Wenn der Iterator einen Treffer der Länge Null enthält und start == end gilt, wird *this auf den End-of-Sequence-Iterator gesetzt und die Funktion kehrt zurück.

Andernfalls, wenn der Iterator einen Treffer der Länge Null enthält, ruft der Operator Folgendes auf:

regex_search(start, end, match, *pregex,
             flags | regex_constants::match_not_null |
                     regex_constants::match_continuous);

Wenn der Aufruf true zurückgibt, kehrt die Funktion zurück.

Andernfalls inkrementiert der Operator start und fährt fort, als wäre der letzte Treffer kein Treffer der Länge Null gewesen.

Wenn der letzte Treffer kein Treffer der Länge Null war, setzt der Operator flags auf flags | regex_constants::match_prev_avail und ruft Folgendes auf:

regex_search(start, end, match, *pregex, flags);

Wenn der Aufruf false zurückgibt, setzt der Iterator *this auf den End-of-Sequence-Iterator und die Funktion kehrt zurück.

In allen Fällen, in denen der Aufruf von regex_search true zurückgibt, ist match.prefix().first gleich dem vorherigen Wert von match[0].second und für jeden Index i im Bereich [0match.size()), für den match[i].matched true ist, gibt match[i].position() distance(begin, match[i].first) zurück.

Das bedeutet, dass match[i].position() den Offset vom Anfang der Zielsequenz angibt, was oft nicht dasselbe ist wie der Offset von der in den Aufruf von regex_search übergebenen Sequenz.

Es ist nicht spezifiziert, wie die Implementierung diese Anpassungen vornimmt. Das bedeutet, dass ein Compiler eine implementierungsspezifische Suchfunktion aufrufen kann, in diesem Fall wird eine benutzerdefinierte Spezialisierung von regex_search nicht aufgerufen.

Das Verhalten ist undefiniert, wenn der Iterator der End-of-Sequence-Iterator ist.

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

1) *this
2) Der vorherige Wert des Iterators.