Namensräume
Varianten
Aktionen

std::match_results

Von cppreference.com
< cpp‎ | regex
 
 
 
Bibliothek für reguläre Ausdrücke
Klassen
(C++11)
match_results
(C++11)
Algorithmen
Iteratoren
Ausnahmen
Traits
Konstanten
(C++11)
Reguläre Ausdrucksgrammatiken
 
 
Definiert in Header <regex>
template<

    class BidirIt,
    class Alloc = std::allocator<std::sub_match<BidirIt>>

> class match_results;
(1) (seit C++11)
namespace pmr {

    template <class BidirIt>
    using match_results = std::match_results<BidirIt,
                              std::pmr::polymorphic_allocator<
                                  std::sub_match<BidirIt>>>;

}
(2) (seit C++17)

Die Klasse std::match_results speichert eine Sammlung von Zeichensequenzen, die das Ergebnis eines regulären Ausdrucksvergleichs darstellen.

Dies ist ein spezialisierter, zuweisungsfähiger Container. Er kann nur per Default erstellt, von std::regex_iterator erhalten oder durch std::regex_search oder std::regex_match modifiziert werden. Da std::match_results std::sub_matches enthält, die jeweils ein Paar von Iteratoren in die ursprüngliche Zeichensequenz sind, die abgeglichen wurde, ist es undefiniertes Verhalten, std::match_results zu untersuchen, wenn die ursprüngliche Zeichensequenz zerstört wurde oder Iteratoren dazu aus anderen Gründen ungültig wurden.

Der erste std::sub_match (Index 0), der in einem std::match_result enthalten ist, repräsentiert immer den vollständigen Treffer innerhalb einer Zielsequenz, der von einem Regex gemacht wurde, und nachfolgende std::sub_matches repräsentieren Teil-Ausdruckstreffer, die sequenziell den linken Klammern entsprechen, die den Teil-Ausdruck im Regex begrenzen.

std::match_results erfüllt die Anforderungen eines AllocatorAwareContainer und eines SequenceContainer, mit der Ausnahme, dass nur Kopierzuweisung, Zuweisung per Verschiebung und für konstante Container definierte Operationen unterstützt werden und dass die Semantik der Vergleichsfunktionen von denen abweicht, die für einen Container gefordert werden.

Inhalt

[bearbeiten] Typanforderungen

-
BidirIt muss die Anforderungen von LegacyBidirectionalIterator erfüllen.
-
Alloc muss die Anforderungen von Allocator erfüllen.

[bearbeiten] Spezialisierungen

Es werden mehrere Spezialisierungen für gängige Zeichensequenztypen bereitgestellt.

Definiert in Header <regex>
Typ Definition
std::cmatch std::match_results<const char*>
std::wcmatch std::match_results<const wchar_t*>
std::smatch std::match_results<std::string::const_iterator>
std::wsmatch std::match_results<std::wstring::const_iterator>
std::pmr::cmatch (C++17) std::pmr::match_results<const char*>
std::pmr::wcmatch (C++17) std::pmr::match_results<const wchar_t*>
std::pmr::smatch (C++17) std::pmr::match_results<std::string::const_iterator>
std::pmr::wsmatch (C++17) std::pmr::match_results<std::wstring::const_iterator>

[bearbeiten] Mitgliedstypen

Mitgliedertyp Definition
allocator_type Allocator
value_type std::sub_match<BidirIt>
const_reference const value_type&
Referenz value_type&
const_iterator implementierungsabhängig (abhängig vom zugrundeliegenden Container)
iterator const_iterator
difference_type std::iterator_traits<BidirIt>::difference_type
size_type std::allocator_traits<Alloc>::size_type
char_type std::iterator_traits<BidirIt>::value_type
string_type std::basic_string<char_type>

[bearbeiten] Mitgliedsfunktionen

konstruiert das Objekt
(öffentliche Mitgliedsfunktion) [bearbeiten]
destruiert das Objekt
(öffentliche Mitgliedsfunktion) [bearbeiten]
weist den Inhalt zu
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt den zugehörigen Allocator zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
Zustand
prüft, ob die Ergebnisse verfügbar sind
(öffentliche Memberfunktion)
Size
prüft, ob der Abgleich erfolgreich war
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die Anzahl der Treffer in einem vollständig etablierten Ergebnisstatus zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die maximal mögliche Anzahl von Teil-Treffern zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
Elementzugriff
gibt die Länge des jeweiligen Teil-Treffers zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die Position des ersten Zeichens des jeweiligen Teil-Treffers zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die Zeichensequenz für den jeweiligen Teil-Treffer zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die angegebene Teilübereinstimmung zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die Teilsequenz zwischen dem Anfang der Zielsequenz und dem Anfang des vollständigen Treffers zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt die Teilsequenz zwischen dem Ende des vollständigen Treffers und dem Ende der Zielsequenz zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
Iteratoren
gibt einen Iterator zum Anfang der Liste von Teil-Treffern zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt einen Iterator zum Ende der Liste von Teil-Treffern zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
Format
formatiert Treffergebnisse für die Ausgabe
(öffentliche Mitgliedsfunktion) [bearbeiten]
Modifizierer
tauscht die Inhalte
(öffentliche Mitgliedsfunktion) [bearbeiten]

[bearbeiten] Nicht-Mitgliedsfunktionen

(in C++20 entfernt)
vergleicht lexikographisch die Werte in den beiden Übereinstimmungsergebnissen
(Funktionstemplate) [bearbeiten]
spezialisiert den std::swap-Algorithmus
(Funktionstemplate) [bearbeiten]