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 Elem
szablonu .
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>