regex_traits-Klasse
Beschreibt die Merkmale von Elementen zum Abgleichen.
Syntax
template<class Elem>
class regex_traits
Parameter
Elem
Der zu beschreibende Zeichenfolgentyp.
Hinweise
Die Klassenvorlage beschreibt verschiedene merkmale regulärer Ausdrücke für typ Elem. Die Klassenvorlage basic_regex Klasse verwendet diese Informationen, um Elemente vom Typ Elem zu bearbeiten.
Jedes regex_traits
-Objekt enthält ein Objekt des Typs regex_traits::locale
, das von einigen seiner Memberfunktionen verwendet wird. Das Standardgebietsschema ist eine Kopie von regex_traits::locale()
. Die Memberfunktion imbue
ersetzt das lokale Objekt, und die getloc
-Memberfunktion gibt eine Kopie des Gebietsschemaobjekts zurück.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
regex_traits | Erstellt das Objekt. |
TypeDefs
Typname | Beschreibung |
---|---|
char_class_type | Der Typ der Zeichenklassenkennzeichner. |
char_type | Der Typ eines Elements. |
locale_type | Der Typ des gespeicherten Gebietsschemaobjekts. |
size_type | Der Typ der Sequenzlänge. |
string_type | Der Typ einer Zeichenfolge von Elementen. |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
getloc | Gibt das gespeicherte Gebietsschemaobjekt zurück. |
imbue | Ändert das gespeicherte Gebietsschemaobjekt. |
isctype | Führt einen Test hinsichtlich der Mitgliedschaft durch. |
length | Gibt die Länge einer null-beendeten Sequenz zurück. |
lookup_classname | Ordnet eine Sequenz einer Zeichenklasse zu. |
lookup_collatename | Ordnet eine Sequenz einem Sortierungselement zu. |
transform | Konvertiert in eine äquivalente sortierte Sequenz. |
transform_primary | Konvertiert in eine äquivalente fallunabhängig sortierte Sequenz. |
translate | Konvertiert in ein äquivalentes übereinstimmendes Element. |
translate_nocase | Konvertiert in ein äquivalentes fallunabhängiges übereinstimmendes Element. |
value | Konvertiert ein Element in einen Ziffernwert. |
Anforderungen
Header:<regex>
Namespace: std
Beispiel
// std__regex__regex_traits.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::regex_traits<char> Mytr;
int main()
{
Mytr tr;
Mytr::char_type ch = tr.translate('a');
std::cout << "translate('a') == 'a' == " << std::boolalpha
<< (ch == 'a') << std::endl;
std::cout << "nocase 'a' == 'A' == " << std::boolalpha
<< (tr.translate_nocase('a') == tr.translate_nocase('A'))
<< std::endl;
const char *lbegin = "abc";
const char *lend = lbegin + strlen(lbegin);
Mytr::size_type size = tr.length(lbegin);
std::cout << "length(\"abc\") == " << size <<std::endl;
Mytr::string_type str = tr.transform(lbegin, lend);
std::cout << "transform(\"abc\") < \"abc\" == " << std::boolalpha
<< (str < "abc") << std::endl;
const char *ubegin = "ABC";
const char *uend = ubegin + strlen(ubegin);
std::cout << "primary \"ABC\" < \"abc\" == " << std::boolalpha
<< (tr.transform_primary(ubegin, uend) <
tr.transform_primary(lbegin, lend))
<< std::endl;
const char *dig = "digit";
Mytr::char_class_type cl = tr.lookup_classname(dig, dig + 5);
std::cout << "class digit == d == " << std::boolalpha
<< (cl == tr.lookup_classname(dig, dig + 1))
<< std::endl;
std::cout << "'3' is digit == " <<std::boolalpha
<< tr.isctype('3', tr.lookup_classname(dig, dig + 5))
<< std::endl;
std::cout << "hex C == " << tr.value('C', 16) << std::endl;
// other members
str = tr.lookup_collatename(dig, dig + 5);
Mytr::locale_type loc = tr.getloc();
tr.imbue(loc);
return (0);
}
translate('a') == 'a' == true
nocase 'a' == 'A' == true
length("abc") == 3
transform("abc") < "abc" == false
primary "ABC" < "abc" == false
class digit == d == true
'3' is digit == true
hex C == 12
regex_traits::char_class_type
Der Typ der Zeichenklassenkennzeichner.
typedef T8 char_class_type;
Hinweise
Der Typ ist ein Synonym für einen nicht angegebenen Typ, der Zeichenklassen bestimmt. Werte dieses Typs können über den |
-Operator kombiniert werden, um Zeichenklassen zu bestimmen, die die Vereinigung der Klassen sind, die von den Operanden bestimmt sind.
regex_traits::char_type
Der Typ eines Elements.
typedef Elem char_type;
Hinweise
Die Typedef stellt ein Synonym für das Vorlagenargument Elem
dar.
regex_traits::getloc
Gibt das gespeicherte Gebietsschemaobjekt zurück.
locale_type getloc() const;
Hinweise
Die Memberfunktion gibt das gespeicherte locale
-Objekt zurück.
regex_traits::imbue
Ändert das gespeicherte Gebietsschemaobjekt.
locale_type imbue(locale_type loc);
Parameter
Loc
Das zu speichernde Gebietsschemaobjekt.
Hinweise
Die Memberfunktion kopiert die Suche in das gespeicherte locale
Objekt und gibt eine Kopie des vorherigen Werts des gespeicherten locale
Objekts zurück.
regex_traits::isctype
Führt einen Test hinsichtlich der Mitgliedschaft durch.
bool isctype(char_type ch, char_class_type cls) const;
Parameter
Ch
Das zu testende Element.
cls
Die Klassen, für die der Test ausgeführt wird.
Hinweise
Die Memberfunktion gibt "true" nur zurück, wenn sich das Zeichen ch in der zeichenklasse befindet, die durch cls festgelegt ist.
regex_traits::length
Gibt die Länge einer null-beendeten Sequenz zurück.
static size_type length(const char_type *str);
Parameter
str
Die null-beendete Sequenz.
Hinweise
Die statische Memberfunktion gibt std::char_traits<char_type>::length(str)
zurück.
regex_traits::locale_type
Der Typ des gespeicherten Gebietsschemaobjekts.
typedef T7 locale_type;
Hinweise
Die Typedef ist ein Synonym für einen Typ, der Gebietsschemas kapselt. In den Spezialisierungen regex_traits<char>
und regex_traits<wchar_t>
ist die Typdefinition ein Synonym für std::locale
.
regex_traits::lookup_classname
Ordnet eine Sequenz einer Zeichenklasse zu.
template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;
Parameter
first
Anfang der Sequenz, die gesucht werden soll.
last
Ende der Sequenz, die gesucht werden soll.
Hinweise
Die Memberfunktion gibt einen Wert zurück, der die Zeichenklasse bestimmt, die von der Zeichenfolgensequenz benannt wird, auf die ihre Argumente zeigen. Der Wert ist nicht von der Groß-/Kleinschreibung der Zeichen in der Sequenz abhängig.
Die Spezialisierung regex_traits<char>
erkennt die Namen "d"
, "s"
, "w"
, "alnum"
, "alpha"
, "blank"
, "cntrl"
, "digit"
, "graph"
, "lower"
, "print"
, "punct"
, "space"
, "upper"
und "xdigit"
, alle unabhängig von der Groß-/Kleinschreibung.
Die Spezialisierung regex_traits<wchar_t>
erkennt die Namen L"d"
, L"s"
, L"w"
, L"alnum"
, L"alpha"
, L"blank"
, L"cntrl"
, L"digit"
, L"graph"
, L"lower"
, L"print"
, L"punct"
, L"space"
, L"upper"
und L"xdigit"
, alle unabhängig von der Groß-/Kleinschreibung.
regex_traits::lookup_collatename
Ordnet eine Sequenz einem Sortierungselement zu.
template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;
Parameter
first
Anfang der Sequenz, die gesucht werden soll.
last
Ende der Sequenz, die gesucht werden soll.
Hinweise
Die Memberfunktion gibt ein String-Objekt zurück, das das Sortierungselement enthält, das der Sequenz [first, last)
entspricht, oder gibt eine leere Zeichenfolge zurück, wenn die Sequenz kein gültiges Sortierungselement ist.
regex_traits::regex_traits
Erstellt das Objekt.
regex_traits();
Hinweise
Mit dem Konstruktor wird ein Objekt erstellt, dessen gespeichertes locale
-Objekt mit dem Standardgebietsschema initialisiert wird.
regex_traits::size_type
Der Typ der Sequenzlänge.
typedef T6 size_type;
Hinweise
Die Typdefinition (typedef) ist ein Synonym für einen ganzzahligen Typ ohne Vorzeichen. In den Spezialisierungen regex_traits<char>
und regex_traits<wchar_t>
ist die Typdefinition ein Synonym für std::size_t
.
Die Typedef ist ein Synonym für std::size_t
.
regex_traits::string_type
Der Typ einer Zeichenfolge von Elementen.
typedef basic_string<Elem> string_type;
Hinweise
Die Typedef ist ein Synonym für basic_string<Elem>
.
regex_traits::transform
Konvertiert in eine äquivalente sortierte Sequenz.
template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;
Parameter
first
Der Anfang der umzuwandelnden Sequenz.
last
Das Ende der umzuwandelnden Sequenz.
Hinweise
Die Memberfunktion gibt eine Zeichenfolge zurück, die sie mithilfe einer Transformationsregel generiert, die von dem gespeicherten locale
-Objekt abhängig ist. Für zwei Zeichenfolgen, die durch die Iteratorbereiche [first1, last1)
und [first2, last2)
bestimmt sind. transform(first1, last1) < transform(first2, last2)
, wenn die durch den Iteratorbereich [first1, last1)
bezeichnete Zeichenfolge vor der durch den Interatorbereich [first2, last2)
bezeichneten Zeichenfolge sortiert wird.
regex_traits::transform_primary
Konvertiert in eine äquivalente fallunabhängig sortierte Sequenz.
template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;
Parameter
first
Der Anfang der umzuwandelnden Sequenz.
last
Das Ende der umzuwandelnden Sequenz.
Hinweise
Die Memberfunktion gibt eine Zeichenfolge zurück, die sie mithilfe einer Transformationsregel generiert, die von dem gespeicherten locale
-Objekt abhängig ist. Für zwei Zeichenfolgen, die durch die Iteratorbereiche [first1, last1)
und [first2, last2)
bestimmt sind. transform_primary(first1, last1) < transform_primary(first2, last2)
, wenn die durch den Iteratorbereich [first1, last1)
bezeichnete Zeichenfolge vor der durch den Iteratorbereich [first2, last2)
bezeichneten Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung oder von Akzenten sortiert wird.
regex_traits::translate
Konvertiert in ein äquivalentes übereinstimmendes Element.
char_type translate(char_type ch) const;
Parameter
Ch
Das zu konvertierende Element.
Hinweise
Die Memberfunktion gibt ein Zeichen zurück, das sie mithilfe einer Transformationsregel generiert, die von dem gespeicherten locale
-Objekt abhängig ist. Für zwei char_type
-Objekte ch1
und ch2
, translate(ch1) == translate(ch2)
nur, wenn ch1
und ch2
übereinstimmen, wenn ein Element in der Definition des regulären Ausdrucks und das andere an der entsprechenden Position in der Zielsequenz für eine Übereinstimmung unter Beachtung des Gebietsschemas auftritt.
regex_traits::translate_nocase
Konvertiert in ein äquivalentes fallunabhängiges übereinstimmendes Element.
char_type translate_nocase(char_type ch) const;
Parameter
Ch
Das zu konvertierende Element.
Hinweise
Die Memberfunktion gibt ein Zeichen zurück, das sie mithilfe einer Transformationsregel generiert, die von dem gespeicherten locale
-Objekt abhängig ist. Für zwei char_type
-Objekte ch1
und ch2
, translate_nocase(ch1) == translate_nocase(ch2)
nur, wenn ch1
und ch2
übereinstimmen, wenn ein Element in der Definition des regulären Ausdrucks und das andere an der entsprechenden Position in der Zielsequenz für eine Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung auftritt.
regex_traits::value
Konvertiert ein Element in einen Ziffernwert.
int value(Elem ch, int radix) const;
Parameter
Ch
Das zu konvertierende Element.
Basis
Die zu verwendende arithmetische Basis.
Hinweise
Die Memberfunktion gibt den Wert zurück, der durch das Zeichen ch im Basisradiix dargestellt wird, oder -1, wenn ch keine gültige Ziffer im Basisradiix ist. Die Funktion wird nur mit einem Radix-Argument von 8, 10 oder 16 aufgerufen.
Siehe auch
<regex>
regex_constants-Klasse
regex_error-Klasse
<regex-Funktionen>
regex_iterator-Klasse
<regex-Operatoren>
regex_token_iterator-Klasse
<regex> typedefs
<regex_traits Zeichenklasse>
<regex_traits wchar_t> Klasse