Udostępnij za pośrednictwem


regex_traits — Klasa

Opisuje cechy elementów do dopasowywania.

Składnia

template<class Elem>
class regex_traits

Parametry

Elem
Typ elementu znaku do opisania.

Uwagi

Szablon klasy opisuje różne cechy wyrażeń regularnych dla typu Elem. Szablon klasy basic_regex Class używa tych informacji do manipulowania elementami typu Elem.

Każdy regex_traits obiekt zawiera obiekt typu regex_traits::locale , który jest używany przez niektóre jego funkcje składowe. Domyślne ustawienia regionalne to kopia regex_traits::locale(). Funkcja imbue składowa zastępuje obiekt ustawień regionalnych, a funkcja getloc składowa zwraca kopię obiektu ustawień regionalnych.

Konstruktory

Konstruktor opis
regex_traits Konstruuje obiekt .

Typedefs

Nazwa typu opis
char_class_type Typ projektantów klas znaków.
char_type Typ elementu.
locale_type Typ przechowywanego obiektu ustawień regionalnych.
size_type Typ długości sekwencji.
string_type Typ ciągu elementów.

Funkcje składowe

Funkcja składowa opis
getloc Zwraca przechowywany obiekt ustawień regionalnych.
Nasycić Zmienia przechowywany obiekt ustawień regionalnych.
isctype Testy członkostwa w klasach.
length Zwraca długość sekwencji zakończonej wartości null.
lookup_classname Mapuje sekwencję na klasę znaków.
lookup_collatename Mapuje sekwencję na element sortowania.
przekształcać Konwertuje na równoważną uporządkowaną sekwencję.
transform_primary Konwertuje na równoważną sekwencję uporządkowaną bez wielkości liter.
Przetłumacz Konwertuje na równoważny element pasujący.
translate_nocase Konwertuje na równoważny element dopasowania bez wielkości liter.
wartość Konwertuje element na wartość cyfry.

Wymagania

Nagłówek:<regex>

Przestrzeń nazw: std

Przykład

// 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 projektantów klas znaków.

typedef T8 char_class_type;

Uwagi

Typ jest synonimem nieokreślonego typu, który wyznacza klasy znaków. Wartości tego typu można połączyć za pomocą | operatora w celu wyznaczenia klas znaków, które są unią klas wyznaczonych przez operandy.

regex_traits::char_type

Typ elementu.

typedef Elem char_type;

Uwagi

Typedef jest synonimem argumentu Elemszablonu .

regex_traits::getloc

Zwraca przechowywany obiekt ustawień regionalnych.

locale_type getloc() const;

Uwagi

Funkcja składowa zwraca przechowywany locale obiekt.

regex_traits::imbue

Zmienia przechowywany obiekt ustawień regionalnych.

locale_type imbue(locale_type loc);

Parametry

Loc
Obiekt ustawień regionalnych do przechowywania.

Uwagi

Funkcja składowa kopiuje lokalizację do przechowywanego locale obiektu i zwraca kopię poprzedniej wartości przechowywanego locale obiektu.

regex_traits::isctype

Testy członkostwa w klasach.

bool isctype(char_type ch, char_class_type cls) const;

Parametry

Ch
Element do przetestowania.

Cls
Klasy do testowania.

Uwagi

Funkcja składowa zwraca wartość true tylko wtedy, gdy znak ch znajduje się w klasie znaków wyznaczonej przez cls.

regex_traits::length

Zwraca długość sekwencji zakończonej wartości null.

static size_type length(const char_type *str);

Parametry

Str
Sekwencja zakończona o wartości null.

Uwagi

Funkcja statycznego elementu członkowskiego zwraca wartość std::char_traits<char_type>::length(str).

regex_traits::locale_type

Typ przechowywanego obiektu ustawień regionalnych.

typedef T7 locale_type;

Uwagi

Typedef jest synonimem typu, który hermetyzuje ustawienia regionalne. W specjalizacjach regex_traits<char> i regex_traits<wchar_t> jest synonimem .std::locale

regex_traits::lookup_classname

Mapuje sekwencję na klasę znaków.

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

Parametry

pierwszy
Początek sekwencji wyszukiwania.

ostatni
Koniec sekwencji, aby wyszukać.

Uwagi

Funkcja składowa zwraca wartość, która wyznacza klasę znaków o nazwie przez sekwencję znaków wskazywaną przez jej argumenty. Wartość nie zależy od wielkości liter w sekwencji.

Specjalizacja regex_traits<char> rozpoznaje nazwy "d", , "s", "alnum""cntrl""digit""blank""graph""lower""alpha""w""punct""space""print""upper"i "xdigit", bez względu na wielkość liter.

Specjalizacja regex_traits<wchar_t> rozpoznaje nazwy L"d", , L"s", L"alnum"L"cntrl"L"digit"L"blank"L"graph"L"lower"L"alpha"L"w"L"punct"L"space"L"print"L"upper"i L"xdigit", bez względu na wielkość liter.

regex_traits::lookup_collatename

Mapuje sekwencję na element sortowania.

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

Parametry

pierwszy
Początek sekwencji wyszukiwania.

ostatni
Koniec sekwencji, aby wyszukać.

Uwagi

Funkcja składowa zwraca obiekt ciągu zawierający element sortowania odpowiadający sekwencji [first, last)lub pusty ciąg, jeśli sekwencja nie jest prawidłowym elementem sortowania.

regex_traits::regex_traits

Konstruuje obiekt .

regex_traits();

Uwagi

Konstruktor tworzy obiekt, którego przechowywany locale obiekt jest inicjowany do domyślnych ustawień regionalnych.

regex_traits::size_type

Typ długości sekwencji.

typedef T6 size_type;

Uwagi

Typedef jest synonimem niepodpisanego typu całkowitego. W specjalizacjach regex_traits<char> i regex_traits<wchar_t> jest synonimem .std::size_t

Typedef jest synonimem .std::size_t

regex_traits::string_type

Typ ciągu elementów.

typedef basic_string<Elem> string_type;

Uwagi

Typedef jest synonimem .basic_string<Elem>

regex_traits::transform

Konwertuje na równoważną uporządkowaną sekwencję.

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

Parametry

pierwszy
Początek sekwencji transformacji.

ostatni
Koniec sekwencji do przekształcenia.

Uwagi

Funkcja składowa zwraca ciąg, który generuje przy użyciu reguły przekształcania, która zależy od przechowywanego locale obiektu. W przypadku dwóch sekwencji znaków wyznaczonych przez zakresy [first1, last1) iteracyjne i [first2, last2), transform(first1, last1) < transform(first2, last2) jeśli sekwencja znaków wyznaczona przez zakres [first1, last1) iteratora sortuje się przed sekwencją znaków wyznaczoną przez zakres [first2, last2)iteratora .

regex_traits::transform_primary

Konwertuje na równoważną sekwencję uporządkowaną bez wielkości liter.

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

Parametry

pierwszy
Początek sekwencji transformacji.

ostatni
Koniec sekwencji do przekształcenia.

Uwagi

Funkcja składowa zwraca ciąg, który generuje przy użyciu reguły przekształcania, która zależy od przechowywanego locale obiektu. W przypadku dwóch sekwencji znaków wyznaczonych przez zakresy [first1, last1) iteracyjne i [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) jeśli sekwencja znaków wyznaczona przez zakres [first1, last1) iteratora sortuje się przed sekwencją znaków wyznaczoną przez zakres [first2, last2) iteratora bez uwzględniania wielkości liter lub akcentów.

regex_traits::translate

Konwertuje na równoważny element pasujący.

char_type translate(char_type ch) const;

Parametry

Ch
Element do konwersji.

Uwagi

Funkcja składowa zwraca znak, który generuje przy użyciu reguły przekształcania, która zależy od przechowywanego locale obiektu. W przypadku dwóch char_type obiektów ch1 i ch2, translate(ch1) == translate(ch2) tylko wtedy, gdy ch1 element i ch2 powinien być zgodny, gdy występuje w definicji wyrażenia regularnego, a drugi występuje na odpowiedniej pozycji w sekwencji docelowej dla dopasowania wrażliwego na ustawienia regionalne.

regex_traits::translate_nocase

Konwertuje na równoważny element dopasowania bez wielkości liter.

char_type translate_nocase(char_type ch) const;

Parametry

Ch
Element do konwersji.

Uwagi

Funkcja składowa zwraca znak, który generuje przy użyciu reguły przekształcania, która zależy od przechowywanego locale obiektu. W przypadku dwóch char_type obiektów ch1 i ch2, translate_nocase(ch1) == translate_nocase(ch2) tylko wtedy, gdy ch1 element i ch2 powinien być zgodny w definicji wyrażenia regularnego, a drugi występuje w odpowiedniej pozycji w sekwencji docelowej dla dopasowania bez uwzględniania wielkości liter.

regex_traits::value

Konwertuje element na wartość cyfry.

int value(Elem ch, int radix) const;

Parametry

Ch
Element do konwersji.

podstawa
Baza arytmetyczna do użycia.

Uwagi

Funkcja składowa zwraca wartość reprezentowaną przez znak ch w promieniu podstawowym lub -1, jeśli ch nie jest prawidłową cyfrą w promieniu podstawowym. Funkcja będzie wywoływana tylko z argumentem promieniowym 8, 10 lub 16.

Zobacz też

<regex>
regex_constants, klasa
regex_error, klasa
<funkcje wyrażenia regularnego>
regex_iterator, klasa
<Operatory wyrażenia> regularnego
regex_token_iterator, klasa
<definicje typów wyrażeń> regularnych
<klasa regex_traits char>
<klasa regex_traits wchar_t>