Freigeben über


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 Elemdar.

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.

radix
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