Dela via


regex_traits-klass

Beskriver egenskaperna för element för matchning.

Syntax

template<class Elem>
class regex_traits

Parameterar

Elem
Typ av teckenelement som ska beskrivas.

Anmärkningar

Klassmallen beskriver olika reguljära uttrycksegenskaper för typ Elem. Klassmallen basic_regex använder den här informationen för att ändra element av typen Elem.

Varje regex_traits objekt innehåller ett objekt av typen regex_traits::locale som används av vissa av dess medlemsfunktioner. Standardspråket är en kopia av regex_traits::locale(). Medlemsfunktionen imbue ersätter språkvariantobjektet och medlemsfunktionen getloc returnerar en kopia av språkvariantobjektet.

Konstruktörer

Konstruktor Beskrivning
regex_traits Konstruerar objektet.

Typedefs

Typnamn Beskrivning
char_class_type Typ av teckenklass designer.
char_type Typ av element.
locale_type Typen av det lagrade nationella objektet.
size_type Typ av sekvenslängd.
string_type Typ av en sträng med element.

Medlemsfunktioner

Medlemsfunktion Beskrivning
getloc Returnerar det lagrade nationella objektet.
genomsyra Ändrar det lagrade nationella objektet.
isctype Tester för klassmedlemskap.
längd Returnerar längden på en null-avslutad sekvens.
lookup_classname Mappar en sekvens till en teckenklass.
lookup_collatename Mappar en sekvens till ett sorteringselement.
transformera Konverterar till motsvarande ordnad sekvens.
transform_primary Konverterar till motsvarande skiftlägeslös ordnad sekvens.
översätta Konverterar till motsvarande matchande element.
translate_nocase Konverterar till motsvarande skiftlägeslösa matchande element.
värde Konverterar ett element till ett siffervärde.

Kravspecifikation

Rubrik:<regex>

namnområde: std

Exempel

// 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

Typ av teckenklass designer.

typedef T8 char_class_type;

Anmärkningar

Typen är en synonym för en ospecificerad typ som anger teckenklasser. Värden av den här typen kan kombineras med operatorn | för att ange teckenklasser som är en union av de klasser som anges av operanderna.

regex_traits::char_type

Typ av element.

typedef Elem char_type;

Anmärkningar

Typedef är en synonym för mallargumentet Elem.

regex_traits::getloc

Returnerar det lagrade nationella objektet.

locale_type getloc() const;

Anmärkningar

Medlemsfunktionen returnerar det lagrade locale objektet.

regex_traits::imbue

Ändrar det lagrade nationella objektet.

locale_type imbue(locale_type loc);

Parameterar

Loc
Språkobjektet som ska lagras.

Anmärkningar

Medlemsfunktionen kopierar loc till det lagrade locale objektet och returnerar en kopia av det lagrade locale objektets tidigare värde.

regex_traits::isctype

Tester för klassmedlemskap.

bool isctype(char_type ch, char_class_type cls) const;

Parameterar

Ch
Elementet som ska testas.

Cls
De klasser som ska testas för.

Anmärkningar

Medlemsfunktionen returnerar endast sant om tecknet ch finns i teckenklassen som anges av cls.

regex_traits::length

Returnerar längden på en null-avslutad sekvens.

static size_type length(const char_type *str);

Parameterar

Str
Den null-avslutade sekvensen.

Anmärkningar

Funktionen static member returnerar std::char_traits<char_type>::length(str).

regex_traits::locale_type

Typen av det lagrade nationella objektet.

typedef T7 locale_type;

Anmärkningar

Typedef är en synonym för en typ som kapslar in nationella inställningar. I specialiseringarna regex_traits<char> och regex_traits<wchar_t> är det en synonym för std::locale.

regex_traits::lookup_classname

Mappar en sekvens till en teckenklass.

template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;

Parameterar

första
Början av sekvensen som ska slås upp.

senaste
Slutet av sekvensen för att slå upp.

Anmärkningar

Medlemsfunktionen returnerar ett värde som anger den teckenklass som namnges av teckensekvensen som pekas på av dess argument. Värdet beror inte på fallet med tecknen i sekvensen.

Specialiseringen regex_traits<char> identifierar namnen "d", , "s""w", "alnum", "alpha", "blank", , "cntrl", "digit", "graph", , "lower", "print", "punct", , "space", , "upper"och "xdigit", allt utan hänsyn till fallet.

Specialiseringen regex_traits<wchar_t> identifierar namnen 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"och L"xdigit", allt utan hänsyn till fallet.

regex_traits::lookup_collatename

Mappar en sekvens till ett sorteringselement.

template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;

Parameterar

första
Början av sekvensen som ska slås upp.

senaste
Slutet av sekvensen för att slå upp.

Anmärkningar

Medlemsfunktionen returnerar ett strängobjekt som innehåller det sorteringselement som motsvarar sekvensen [first, last)eller en tom sträng om sekvensen inte är ett giltigt sorteringselement.

regex_traits::regex_traits

Konstruerar objektet.

regex_traits();

Anmärkningar

Konstruktorn konstruerar ett objekt vars lagrade locale objekt initieras till standardspråket.

regex_traits::size_type

Typ av sekvenslängd.

typedef T6 size_type;

Anmärkningar

Typedef är en synonym för en osignerad integraltyp. I specialiseringarna regex_traits<char> och regex_traits<wchar_t> är det en synonym för std::size_t.

Typedef är en synonym för std::size_t.

regex_traits::string_type

Typ av en sträng med element.

typedef basic_string<Elem> string_type;

Anmärkningar

Typedef är en synonym för basic_string<Elem>.

regex_traits::transform

Konverterar till motsvarande ordnad sekvens.

template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;

Parameterar

första
Början av sekvensen som ska transformeras.

senaste
Slutet av sekvensen som ska transformeras.

Anmärkningar

Medlemsfunktionen returnerar en sträng som genereras med hjälp av en transformeringsregel som är beroende av det lagrade locale objektet. För två teckensekvenser som anges av iteratorintervallen [first1, last1) och [first2, last2), transform(first1, last1) < transform(first2, last2) om teckensekvensen som anges av iteratorintervallet [first1, last1) sorterar före teckensekvensen som anges av iteratorintervallet [first2, last2).

regex_traits::transform_primary

Konverterar till motsvarande skiftlägeslös ordnad sekvens.

template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;

Parameterar

första
Början av sekvensen som ska transformeras.

senaste
Slutet av sekvensen som ska transformeras.

Anmärkningar

Medlemsfunktionen returnerar en sträng som genereras med hjälp av en transformeringsregel som är beroende av det lagrade locale objektet. För två tecken ordnar designerat av iterator spänner [first1, last1) och [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) om teckensekvensen som designeras av iteratorområdet [first1, last1) sorterar, för teckensekvensen som designeras av iteratorområdet [first2, last2) utan hänsyn till fallet eller accenter.

regex_traits::translate

Konverterar till motsvarande matchande element.

char_type translate(char_type ch) const;

Parameterar

Ch
Elementet som ska konverteras.

Anmärkningar

Medlemsfunktionen returnerar ett tecken som genereras med hjälp av en transformeringsregel som är beroende av det lagrade locale objektet. För två char_type objekt ch1 och ch2, translate(ch1) == translate(ch2) endast om ch1 och ch2 ska matcha när det ena inträffar i definitionen för reguljära uttryck och det andra inträffar på en motsvarande position i målsekvensen för en språkkänslig matchning.

regex_traits::translate_nocase

Konverterar till motsvarande skiftlägeslösa matchande element.

char_type translate_nocase(char_type ch) const;

Parameterar

Ch
Elementet som ska konverteras.

Anmärkningar

Medlemsfunktionen returnerar ett tecken som genereras med hjälp av en transformeringsregel som är beroende av det lagrade locale objektet. För två char_type objekt ch1 och ch2, translate_nocase(ch1) == translate_nocase(ch2) endast om ch1 och ch2 ska matcha när det ena inträffar i definitionen för reguljära uttryck och det andra inträffar på motsvarande position i målsekvensen för en skiftlägeskänslig matchning.

regex_traits::value

Konverterar ett element till ett siffervärde.

int value(Elem ch, int radix) const;

Parameterar

Ch
Elementet som ska konverteras.

Radix
Den aritmetiska bas som ska användas.

Anmärkningar

Medlemsfunktionen returnerar värdet som representeras av tecknet ch i basradixet, eller -1 om ch inte är en giltig siffra i basradixet. Funktionen anropas endast med radixargumentet 8, 10 eller 16.

Se även

<regex>
regex_constants-klass
regex_error-klass
<regex-funktioner>
regex_iterator-klass
<regex-operatorer>
regex_token_iterator-klass
<regex> typedefs
<regex_traits teckenklass>
<regex_traits wchar_t> klass