basic_regex-Klasse
Umschließt einen regulären Ausdruck.
Syntax
template <class Elem, class RXtraits>
class basic_regex
Parameter
Elem
Der zu entsprechende Elementtyp.
RX-Merkmale
Merkmalklasse für Elemente.
Hinweise
Die Klassenvorlage beschreibt ein Objekt, das einen regulären Ausdruck enthält. Objekte dieser Klassenvorlage können an die Vorlagenfunktionen regex_match, regex_search und regex_replace übergeben werden. Außerdem werden die geeigneten Textzeichenfolgenargumente übergeben, um nach Text zu suchen, der dem regulären Ausdruck entspricht. Es gibt zwei Spezialisierungen dieser Klassenvorlage, mit den Typdefinitionen regex für Elemente vom Typ char
und wregex für Elemente des Typs wchar_t
.
Das Vorlagenargument RX-Eigenschaften beschreibt verschiedene wichtige Eigenschaften der Syntax der regulären Ausdrücke, die von der Klassenvorlage unterstützt werden. Eine Klasse, die diese Merkmale regulärer Ausdrücke angibt, muss dieselbe externe Schnittstelle wie ein Objekt vom Typ regex_traits Class aufweisen.
Einige Funktionen akzeptieren eine Operandensequenz, die einen regulären Ausdruck definiert. Sie können eine solche Operandensequenz wie folgt angeben:
ptr
: eine mit Null beendete Sequenz (z. B. eine C-Zeichenfolge, für Elem vom Typ char
) beginnend bei ptr
(die kein Nullzeiger sein darf), wobei das Endelement der Wert value_type()
ist und nicht Teil der Operandensequenz ist
ptr
, : count
eine Abfolge von count
Elementen ab ptr
(die kein Nullzeiger sein darf)
str
: die vom basic_string
Objekt angegebene Sequenz str
first
, : last
eine Abfolge von Elementen, die durch die Iteratoren first
und last
, im Bereich getrennt sind [first, last)
right
: das basic_regex
Objekt right
Die obigen Memberfunktionen verwenden auch ein Argument flags
, das verschiedene Optionen für die Interpretation des regulären Ausdrucks sowie optionen angibt, die vom RX-Eigenschaftentyp beschrieben werden.
Member
Member | Standardwert |
---|---|
public static const flag_type icase | regex_constants::icase |
public static const flag_type nosubs | regex_constants::nosubs |
public static const flag_type optimize | regex_constants::optimize |
Öffentliche statische Konst flag_type sortieren | regex_constants::collate |
public static const flag_type ECMAScript | regex_constants::ECMAScript |
Öffentliche statische Konst flag_type Basic | regex_constants::basic |
öffentliche statische flag_type erweitert | regex_constants::extended |
public static const flag_type awk | regex_constants::awk |
public static const flag_type grep | regex_constants::grep |
public static const flag_type egrep | regex_constants::egrep |
Private RX-Merkmale |
Konstruktoren
Konstruktor | Beschreibung |
---|---|
basic_regex | Konstruiert das reguläre Ausdrucksobjekt. |
TypeDefs
Typname | Beschreibung |
---|---|
flag_type | Der Typ der Syntaxoptionsflags. |
locale_type | Der Typ des gespeicherten Gebietsschemaobjekts. |
value_type | Der Elementtyp. |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
assign | Weist dem Objekt für einen regulären Ausdruck einen Wert zu. |
flags | Gibt Syntaxoptionsflags zurück. |
getloc | Gibt das gespeicherte Gebietsschemaobjekt zurück. |
imbue | Ändert das gespeicherte Gebietsschemaobjekt. |
mark_count | Gibt die Anzahl der übereinstimmenden Teilausdrücke zurück. |
swap | Tauscht zwei Objekte mit regulärem Ausdruck. |
Operatoren
Operator | Beschreibung |
---|---|
operator= | Weist dem Objekt für einen regulären Ausdruck einen Wert zu. |
Anforderungen
Header:<regex>
Namespace: std
Beispiel
// std__regex__basic_regex.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
using namespace std;
int main()
{
regex::value_type elem = 'x';
regex::flag_type flag = regex::grep;
elem = elem; // to quiet "unused" warnings
flag = flag;
// constructors
regex rx0;
cout << "match(\"abc\", \"\") == " << boolalpha
<< regex_match("abc", rx0) << endl;
regex rx1("abcd", regex::ECMAScript);
cout << "match(\"abc\", \"abcd\") == " << boolalpha
<< regex_match("abc", rx1) << endl;
regex rx2("abcd", 3);
cout << "match(\"abc\", \"abc\") == " << boolalpha
<< regex_match("abc", rx2) << endl;
regex rx3(rx2);
cout << "match(\"abc\", \"abc\") == " << boolalpha
<< regex_match("abc", rx3) << endl;
string str("abcd");
regex rx4(str);
cout << "match(string(\"abcd\"), \"abc\") == " << boolalpha
<< regex_match("abc", rx4) << endl;
regex rx5(str.begin(), str.end() - 1);
cout << "match(string(\"abc\"), \"abc\") == " << boolalpha
<< regex_match("abc", rx5) << endl;
cout << endl;
// assignments
rx0 = "abc";
rx0 = rx1;
rx0 = str;
rx0.assign("abcd", regex::ECMAScript);
rx0.assign("abcd", 3);
rx0.assign(rx1);
rx0.assign(str);
rx0.assign(str.begin(), str.end() - 1);
rx0.swap(rx1);
// mark_count
cout << "\"abc\" mark_count == "
<< regex("abc").mark_count() << endl;
cout << "\"(abc)\" mark_count == "
<< regex("(abc)").mark_count() << endl;
// locales
regex::locale_type loc = rx0.imbue(locale());
cout << "getloc == imbued == " << boolalpha
<< (loc == rx0.getloc()) << endl;
// initializer_list
regex rx6({ 'a', 'b', 'c' }, regex::ECMAScript);
cout << "match(\"abc\") == " << boolalpha
<< regex_match("abc", rx6);
cout << endl;
}
match("abc", "") == false
match("abc", "abcd") == false
match("abc", "abc") == true
match("abc", "abc") == true
match(string("abcd"), "abc") == false
match(string("abc"), "abc") == true
"abc" mark_count == 0
"(abc)" mark_count == 1
getloc == imbued == true
match("abc") == true
basic_regex::assign
Weist dem Objekt für einen regulären Ausdruck einen Wert zu.
basic_regex& assign(
const basic_regex& right);
basic_regex& assign(
const Elem* ptr,
flag_type flags = ECMAScript);
basic_regex& assign(
const Elem* ptr,
size_type len,
flag_type flags = ECMAScript);
basic_regex& assign(
initializer_list<_Elem> IList,
flag_type flags = regex_constants::ECMAScript);
template <class STtraits, class STalloc>
basic_regex& assign(
const basic_string<Elem, STtraits, STalloc>& str,
flag_type flags = ECMAScript);
template <class InIt>
basic_regex& assign(
InIt first, InIt last,
flag_type flags = ECMAScript);
Parameter
STtraits
Merkmalklasse für eine Zeichenfolgequelle.
STalloc
Zuweisungsklasse für eine Zeichenfolgequelle.
Anfang
Eingabeiteratortyp für eine Bereichsquelle.
right
Zu kopierende RegEx-Quelle.
ptr
Zeiger zum Anfang der zu kopierenden Sequenz.
flags
Syntaxoptionsflags, die beim Kopieren hinzugefügt werden.
len/TD>
Länge der zu kopierenden Sequenz.
str
Zu kopierende Zeichenfolge.
first
Anfang der zu kopierenden Sequenz.
last
Ende der zu kopierenden Sequenz.
IList
Das zu kopierende initializer_list-Element.
Hinweise
Jede Memberfunktion ersetzt den regulären Ausdruck, der in *this
enthalten ist durch den regulären Ausdruck, der in der Operandensequenz enthalten ist und gibt dann *this
zurück.
basic_regex::basic_regex
Konstruiert das reguläre Ausdrucksobjekt.
basic_regex();
explicit basic_regex(
const Elem* ptr,
flag_type flags);
explicit basic_regex(
const Elem* ptr,
size_type len,
flag_type flags);
basic_regex(
const basic_regex& right);
basic_regex(
initializer_list<Type> IList,
flag_type flags);
template <class STtraits, class STalloc>
explicit basic_regex(
const basic_string<Elem, STtraits, STalloc>& str,
flag_type flags);
template <class InIt>
explicit basic_regex(
InIt first,
InIt last,
flag_type flags);
Parameter
STtraits
Merkmalklasse für eine Zeichenfolgequelle.
STalloc
Zuweisungsklasse für eine Zeichenfolgequelle.
Anfang
Eingabeiteratortyp für eine Bereichsquelle.
right
Zu kopierende RegEx-Quelle.
ptr
Zeiger zum Anfang der zu kopierenden Sequenz.
flags
Syntaxoptionsflags, die beim Kopieren hinzugefügt werden.
len/TD>
Länge der zu kopierenden Sequenz.
str
Zu kopierende Zeichenfolge.
first
Anfang der zu kopierenden Sequenz.
last
Ende der zu kopierenden Sequenz.
IList
Das zu kopierende initializer_list-Element.
Hinweise
Alle Konstruktoren speichern ein standardmäßig erstelltes Objekt vom Typ RXtraits
.
Der erste Konstruktor erstellt ein leeres basic_regex
-Objekt. Die anderen Konstruktoren erstellen ein basic_regex
-Objekt, das den regulären Ausdruck enthält, der von der Operandensequenz beschrieben wird.
Ein leeres basic_regex
Objekt stimmt nicht mit einer Zeichenfolge überein, wenn es an regex_match, regex_search oder regex_replace übergeben wird.
basic_regex::flag_type
Der Typ der Syntaxoptionsflags.
typedef regex_constants::syntax_option_type flag_type;
Hinweise
Der Typ ist ein Synonym für regex_constants::syntax_option_type.
basic_regex::flags
Gibt Syntaxoptionsflags zurück.
flag_type flags() const;
Hinweise
Die Memberfunktion gibt den Wert des flag_type
-Arguments zurück, das an den letzten Aufruf einer der basic_regex::assign-Memberfunktionen übergeben wurde. Wenn kein Aufruf erfolgt ist, wird der an den Konstruktor übergebene Wert zurückgegeben.
basic_regex::getloc
Gibt das gespeicherte Gebietsschemaobjekt zurück.
locale_type getloc() const;
Hinweise
Die Memberfunktion gibt traits.
regex_traits::getloc()
zurück.
basic_regex::imbue
Ändert das gespeicherte Gebietsschemaobjekt.
locale_type imbue(locale_type loc);
Parameter
Loc
Das zu speichernde Gebietsschemaobjekt.
Hinweise
Die Memberfunktion leert *this
und gibt traits.
regex_traits::imbue(loc)
zurück.
basic_regex::locale_type
Der Typ des gespeicherten Gebietsschemaobjekts.
typedef typename RXtraits::locale_type locale_type;
Hinweise
Der Typ ist ein Synonym für regex_traits::locale_type.
basic_regex::mark_count
Gibt die Anzahl der übereinstimmenden Teilausdrücke zurück.
unsigned mark_count() const;
Hinweise
Die Memberfunktion gibt die Anzahl der Erfassungsgruppen im regulären Ausdruck zurück.
basic_regex::operator=
Weist dem Objekt für einen regulären Ausdruck einen Wert zu.
basic_regex& operator=(const basic_regex& right);
basic_regex& operator=(const Elem *str);
template <class STtraits, class STalloc>
basic_regex& operator=(const basic_string<Elem, STtraits, STalloc>& str);
Parameter
STtraits
Merkmalklasse für eine Zeichenfolgequelle.
STalloc
Zuweisungsklasse für eine Zeichenfolgequelle.
right
Zu kopierende RegEx-Quelle.
str
Zu kopierende Zeichenfolge.
Hinweise
Jeder Operator ersetzt den regulären Ausdruck, der in *this
enthalten ist, durch den regulären Ausdruck, der in der Operandensequenz enthalten ist, und gibt dann *this
zurück.
basic_regex::swap
Tauscht zwei Objekte mit regulärem Ausdruck.
void swap(basic_regex& right) throw();
Parameter
right
Das Objekt mit regulärem Ausdruck, gegen das getauscht werden soll.
Hinweise
Die Memberfunktion tauscht die regulären Ausdrücke zwischen *this
und rechts aus. Die Funktion führt dies in konstanter Zeit aus und löst keine Ausnahmen aus.
basic_regex::value_type
Der Elementtyp.
typedef Elem value_type;
Hinweise
Der Typ ist ein Synonym für den Vorlagenparameter Elem.
Siehe auch
<regex>
regex_match
regex_search
regex_replace
regex
wregex
regex_traits-Klasse