Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 basic_regex klasy 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 . |
Definicje typów
| 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. |
| długości | 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", "w""alnum""alpha""blank""cntrl""digit""graph""lower""print""punct""space""upper"i "xdigit", bez względu na wielkość liter.
Specjalizacja regex_traits<wchar_t> rozpoznaje nazwy 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"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>