Freigeben über


match_results-Klasse

Enthält eine Sequenz von Teilübereinstimmungen.

Syntax

template <class BidIt, class Alloc>
class match_results

Parameter

BidIt
Der Itertatortyp für Teilübereinstimmungen.

Alloc
Der Typ einer Zuweisung für die Speicherverwaltung.

Hinweise

Die Klassenvorlage beschreibt ein Objekt, das eine nicht modifizierbare Abfolge von Elementen vom Typ sub_match<BidIt> steuert, die von einer Suche mit regulären Ausdrücken generiert werden. Jedes Element verweist auf die Untersequenz, die mit der Erfassungsgruppe übereinstimmt, die diesem Element entspricht.

Konstruktoren

Konstruktor Beschreibung
match_results Erstellt das Objekt.

TypeDefs

Typname Beschreibung
allocator_type Der Typ einer Zuweisung für die Speicherverwaltung.
char_type Der Typ eines Elements.
const_iterator Der Itertatortyp „const“ für Teilübereinstimmungen.
const_reference Der Typ eines Konstantenverweises auf ein Element.
difference_type Der Typ einer Iteratordifferenz.
iterator Der Itertatortyp für Teilübereinstimmungen.
reference Der Typ eines Elementverweises.
size_type Der Typ einer Teilübereinstimmungszählers.
string_type Der Typ einer Zeichenfolge.
value_type Der Typ einer Teilübereinstimmung.

Memberfunktionen

Memberfunktion Beschreibung
begin Kennzeichnet den Anfang einer Teilübereinstimmungssequenz.
empty Testet, ob keine Teilübereinstimmungen vorliegen.
end Designates end of submatch sequence.
format Formatiert Teilübereinstimmungen.
get_allocator Gibt die gespeicherte Zuweisung zurück.
length Gibt die Länge einer Teilübereinstimmung zurück.
max_size Ruft die größte Anzahl von Teilübereinstimmungen ab.
position Ruft das Startoffset einer Untergruppe ab.
Präfix Ruft die Sequenz vor der ersten Teilübereinstimmung ab.
size Zählt, wie viele Teilübereinstimmungen es gibt.
str Gibt eine Teilübereinstimmung zurück.
Suffix Ruft die Sequenz nach der letzten Teilübereinstimmung ab.
swap Tauscht zwei match_results-Objekte.

Operatoren

Operator Beschreibung
operator= Kopieren Sie ein match_results-Objekt.
operator[] Zugriff auf ein Unterobjekt.

Anforderungen

Header:<regex>

Namespace: std

Beispiel

// std__regex__match_results.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>

int main()
{
    std::regex rx("c(a*)|(b)");
    std::cmatch mr;

    std::regex_search("xcaaay", mr, rx);

    std::cout << "prefix: matched == " << std::boolalpha
        << mr.prefix().matched
        << ", value == " << mr.prefix() << std::endl;
    std::cout << "whole match: " << mr.length() << " chars, value == "
        << mr.str() << std::endl;
    std::cout << "suffix: matched == " << std::boolalpha
        << mr.suffix().matched
        << ", value == " << mr.suffix() << std::endl;
    std::cout << std::endl;

    std::string fmt("\"c(a*)|(b)\" matched \"$&\"\n"
        "\"(a*)\" matched \"$1\"\n"
        "\"(b)\" matched \"$2\"\n");
    std::cout << mr.format(fmt) << std::endl;
    std::cout << std::endl;

    // index through submatches
    for (size_t n = 0; n < mr.size(); ++n)
    {
        std::cout << "submatch[" << n << "]: matched == " << std::boolalpha
            << mr[n].matched <<
            " at position " << mr.position(n) << std::endl;
        std::cout << "  " << mr.length(n)
            << " chars, value == " << mr[n] << std::endl;
    }
    std::cout << std::endl;

    // iterate through submatches
    for (std::cmatch::iterator it = mr.begin(); it != mr.end(); ++it)
    {
        std::cout << "next submatch: matched == " << std::boolalpha
            << it->matched << std::endl;
        std::cout << "  " << it->length()
            << " chars, value == " << *it << std::endl;
    }
    std::cout << std::endl;

    // other members
    std::cout << "empty == " << std::boolalpha << mr.empty() << std::endl;

    std::cmatch::allocator_type al = mr.get_allocator();
    std::cmatch::string_type str = std::string("x");
    std::cmatch::size_type maxsiz = mr.max_size();
    std::cmatch::char_type ch = 'x';
    std::cmatch::difference_type dif = mr.begin() - mr.end();
    std::cmatch::const_iterator cit = mr.begin();
    std::cmatch::value_type val = *cit;
    std::cmatch::const_reference cref = val;
    std::cmatch::reference ref = val;

    maxsiz = maxsiz;  // to quiet "unused" warnings
    if (ref == cref)
        ch = ch;
    dif = dif;

    return (0);
}
prefix: matched == true, value == x
whole match: 4 chars, value == caaa
suffix: matched == true, value == y

"c(a*)|(b)" matched "caaa"
"(a*)" matched "aaa"
"(b)" matched ""

submatch[0]: matched == true at position 1
  4 chars, value == caaa
submatch[1]: matched == true at position 2
  3 chars, value == aaa
submatch[2]: matched == false at position 6
  0 chars, value ==

next submatch: matched == true
  4 chars, value == caaa
next submatch: matched == true
  3 chars, value == aaa
next submatch: matched == false
  0 chars, value ==

empty == false

match_results::allocator_type

Der Typ einer Zuweisung für die Speicherverwaltung.

typedef Alloc allocator_type;

Hinweise

Der Typedef ist ein Synonym für das Vorlagenargument Alloc.

match_results::begin

Kennzeichnet den Anfang einer Teilübereinstimmungssequenz.

const_iterator begin() const;

Hinweise

Die Memberfunktion gibt einen Iterator mit wahlfreiem Zugriff zurück, der auf das erste Element der Sequenz zeigt (bzw. gerade über das Ende einer leeren Sequenz hinaus).

match_results::char_type

Der Typ eines Elements.

typedef typename iterator_traits<BidIt>::value_type char_type;

Hinweise

Die Typdefinition (typedef) ist ein Synonym für den Typ iterator_traits<BidIt>::value_type, der der Elementtyp der Zeichenfolge ist, die durchsucht wurde.

match_results::const_iterator

Der Itertatortyp „const“ für Teilübereinstimmungen.

typedef T0 const_iterator;

Hinweise

Die Typdefinition beschreibt ein Objekt, das als Iterator für den konstanten zufälligen Zugriff für die kontrollierte Sequenz dienen kann.

match_results::const_reference

Der Typ eines Konstantenverweises auf ein Element.

typedef const typename Alloc::const_reference const_reference;

Hinweise

Die Typdef beschreibt ein Objekt, das als Konstantenverweis für ein Element der gesteuerten Sequenz fungieren kann.

match_results::d ifference_type

Der Typ einer Iteratordifferenz.

typedef typename iterator_traits<BidIt>::difference_type difference_type;

Hinweise

Typedef ist ein Synonym für den Typ iterator_traits<BidIt>::difference_type. Er beschreibt ein Objekt, das die Differenz zwischen zwei beliebigen Iteratoren darstellen kann, die auf Elemente der kontrollierten Sequenz verweisen.

match_results::empty

Testet, ob keine Teilübereinstimmungen vorliegen.

bool empty() const;

Hinweise

Die Memberfunktion gibt nur dann „true“, wenn die Suche mit regulärem Ausdruck fehlgeschlagen ist.

match_results::end

Designates end of submatch sequence.

const_iterator end() const;

Hinweise

Die Memberfunktion gibt einen Iterator zurück, der direkt hinter das Ende der Sequenz verweist.

match_results::format

Formatiert Teilübereinstimmungen.

template <class OutIt>
OutIt format(OutIt out,
    const string_type& fmt, match_flag_type flags = format_default) const;

string_type format(const string_type& fmt, match_flag_type flags = format_default) const;

Parameter

OutIt
Der Ausgabeiteratortyp.

out
Der Ausgabestream, in den geschrieben werden soll.

Fmt
Die Formatzeichenfolge.

flags
Die Formatflags.

Hinweise

Jede Memberfunktion generiert formatierten Text unter dem Steuerelement des Formats fmt. Die erste Memberfunktion schreibt den formatierten Text in die durch das Argument definierte Sequenz und gibt es zurück. Die zweite Memberfunktion gibt ein Zeichenfolgenobjekt zurück, das eine Kopie des formatierten Texts enthält.

Um formatierten Text zu generieren, wird Literaltext in der Formatzeichenfolge einfach in die Zielsequenz kopiert. Jede Escapesequenz in der Formatzeichenfolge wird vom Text ersetzt, den sie darstellt. Die Details des Kopierens und Ersetzens werden durch die Formatflags gesteuert, die an die Funktion übergeben werden.

match_results::get_allocator

Gibt die gespeicherte Zuweisung zurück.

allocator_type get_allocator() const;

Hinweise

Die Memberfunktion gibt eine Kopie des Zuweisungsobjekts zurück, das von *this zum Zuweisen der sub_match-Objekte verwendet wird.

match_results::iterator

Der Itertatortyp für Teilübereinstimmungen.

typedef const_iterator iterator;

Hinweise

Der Typ beschreibt ein Objekt, das als Iterator für zufälligen Zugriff für die gesteuerte Sequenz fungieren kann.

match_results::length

Gibt die Länge einer Teilübereinstimmung zurück.

difference_type length(size_type sub = 0) const;

Parameter

sub
Der Index der Teilübereinstimmung.

Hinweise

Die Memberfunktion gibt (*this)[sub].length() zurück.

match_results::match_results

Erstellt das Objekt.

explicit match_results(const Alloc& alloc = Alloc());

match_results(const match_results& right);

Parameter

alloc
Das zu speichernde Zuweisungsobjekt.

right
Das zu kopierende match_results-Objekt.

Hinweise

Der erste Konstruktor erstellt ein match_results-Objekt, das keine Teilübereinstimmungen enthält. Der zweite Konstruktor erstellt ein match_results Objekt, das eine Kopie von rechts ist.

match_results::max_size

Ruft die größte Anzahl von Teilübereinstimmungen ab.

size_type max_size() const;

Hinweise

Die Memberfunktion gibt die Länge der längsten Sequenz zurück, die das Objekt steuern kann.

match_results::operator=

Kopieren Sie ein match_results-Objekt.

match_results& operator=(const match_results& right);

Parameter

right
Das zu kopierende match_results-Objekt.

Hinweise

Der Memberoperator ersetzt die Sequenz, die durch *this eine Kopie der von rechts gesteuerten Sequenz gesteuert wird.

match_results::operator[]

Zugriff auf ein Unterobjekt.

const_reference operator[](size_type n) const;

Parameter

n
Der Index der Teilübereinstimmung.

Hinweise

Die Memberfunktion gibt einen Verweis auf Element n der kontrollierten Sequenz oder einen Verweis auf ein leeres sub_match Objekt zurück, wenn size() <= n die Aufnahmegruppe n nicht Teil der Übereinstimmung war.

match_results::p osition

Ruft das Startoffset einer Untergruppe ab.

difference_type position(size_type sub = 0) const;

Parameter

sub
Der Index der Teilübereinstimmung.

Hinweise

Die Memberfunktion gibt std::distance(prefix().first, (*this)[sub].first)zurück, d. h. den Abstand vom ersten Zeichen in der Zielsequenz zum ersten Zeichen in der Teilübereinstimmung, auf die das n -Element der kontrollierten Sequenz verweist.

match_results::p refix

Ruft die Sequenz vor der ersten Teilübereinstimmung ab.

const_reference prefix() const;

Hinweise

Die Memberfunktion gibt einen Verweis auf ein Objekt des Typs sub_match<BidIt> zurück, das auf die Zeichenfolge zeigt, die am Anfang der Zielsequenz beginnt und am (*this)[0].firstendet, d. h., das Objekt zeigt auf den Text, der der übereinstimmenden Untersequenz voransteht.

match_results::reference

Der Typ eines Elementverweises.

typedef const_reference reference;

Hinweise

Der Typ ist ein Synonym für den Typ const_reference.

match_results::size

Zählt, wie viele Teilübereinstimmungen es gibt.

size_type size() const;

Hinweise

Die Memberfunktion gibt entweder einen Wert zurück, der um eins größer ist als die Anzahl von Erfassungsgruppen im regulären Ausdruck, der für die Suche verwendet wurde, oder 0 (null), wenn keine Suche ausgeführt wurde.

match_results::size_type

Der Typ einer Teilübereinstimmungszählers.

typedef typename Alloc::size_type size_type;

Hinweise

Der Typ ist ein Synonym für den Typ Alloc::size_type.

match_results::str

Gibt eine Teilübereinstimmung zurück.

string_type str(size_type sub = 0) const;

Parameter

sub
Der Index der Teilübereinstimmung.

Hinweise

Die Memberfunktion gibt string_type((*this)[sub]) zurück.

match_results::string_type

Der Typ einer Zeichenfolge.

typedef basic_string<char_type> string_type;

Hinweise

Der Typ ist ein Synonym für den Typ basic_string<char_type>.

match_results::suffix

Ruft die Sequenz nach der letzten Teilübereinstimmung ab.

const_reference suffix() const;

Hinweise

Die Memberfunktion gibt einen Verweis auf ein Objekt des Typs sub_match<BidIt> zurück, das auf die Zeichenfolge zeigt, die bei beginnt (*this)[size() - 1].second und am Ende der Zielsequenz endet, d. h., das Objekt zeigt auf den Text, der auf die übereinstimmende Untersequenz folgt.

match_results::swap

Tauscht zwei match_results-Objekte.

void swap(const match_results& right) throw();

Parameter

right
Das match_results-Objekt, mit dem getauscht werden soll.

Hinweise

Die Memberfunktion vertauscht den Inhalt und *this das Recht in konstanter Zeit und löst keine Ausnahmen aus.

match_results::value_type

Der Typ einer Teilübereinstimmung.

typedef sub_match<BidIt> value_type;

Hinweise

Die Typedef ist ein Synonym für den Typ sub_match<BidIt>.

Siehe auch

<regex>