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].first
endet, 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>
.