regex_traits – třída
Popisuje charakteristiky prvků pro porovnávání.
Syntaxe
template<class Elem>
class regex_traits
Parametry
Elem
Typ prvku znaku, který chcete popsat.
Poznámky
Šablona třídy popisuje různé vlastnosti regulárního výrazu pro typ Elem. Šablona třídy basic_regex Třída používá tyto informace k manipulaci s prvky typu Elem.
Každý regex_traits
objekt obsahuje objekt typu regex_traits::locale
, který používá některé členské funkce. Výchozí národní prostředí je kopie regex_traits::locale()
. Členová funkce imbue
nahradí objekt národního prostředí a členová funkce getloc
vrátí kopii objektu národního prostředí.
Konstruktory
Konstruktor | Popis |
---|---|
regex_traits | Vytvoří objekt. |
Typedefs
Název typu | Popis |
---|---|
char_class_type | Typ designátorů tříd znaků. |
char_type | Typ prvku |
locale_type | Typ uloženého objektu národního prostředí. |
size_type | Typ délky sekvence. |
string_type | Typ řetězce prvků. |
Členské funkce
Členová funkce | Popis |
---|---|
getloc | Vrátí uložený objekt národního prostředí. |
naplnit | Změní uložený objekt národního prostředí. |
isctype | Testuje členství ve třídě. |
length | Vrátí délku sekvence ukončené hodnotou null. |
lookup_classname | Namapuje posloupnost na třídu znaků. |
lookup_collatename | Mapuje posloupnost na kompletující prvek. |
transformovat | Převede se na ekvivalentní seřazenou sekvenci. |
transform_primary | Převede na ekvivalentní seřazenou sekvenci bez velkých a malých písmen. |
překládat | Převede na ekvivalentní odpovídající prvek. |
translate_nocase | Převede na ekvivalentní prvek porovnávání bez velkých písmen. |
value | Převede prvek na hodnotu číslice. |
Požadavky
Header:<regex>
Namespace: std
Příklad
// 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 designátorů tříd znaků.
typedef T8 char_class_type;
Poznámky
Typ je synonymem pro nespecifikovaný typ, který určuje třídy znaků. Hodnoty tohoto typu lze kombinovat pomocí operátoru |
k určení tříd, které jsou sjednocením tříd určených operandy.
regex_traits::char_type
Typ prvku
typedef Elem char_type;
Poznámky
Typedef je synonymem pro argument Elem
šablony .
regex_traits::getloc
Vrátí uložený objekt národního prostředí.
locale_type getloc() const;
Poznámky
Členová funkce vrátí uložený locale
objekt.
regex_traits::imbue
Změní uložený objekt národního prostředí.
locale_type imbue(locale_type loc);
Parametry
Loc
Objekt národního prostředí, který se má uložit.
Poznámky
Členová funkce zkopíruje umístění uloženého objektu locale
a vrátí kopii předchozí hodnoty uloženého locale
objektu.
regex_traits::isctype
Testuje členství ve třídě.
bool isctype(char_type ch, char_class_type cls) const;
Parametry
ch
Prvek, který chcete otestovat.
Cls
Třídy, pro které se mají testovat.
Poznámky
Členské funkce vrátí hodnotu true pouze v případě, že znak ch je ve třídě znaků určené cls.
regex_traits::length
Vrátí délku sekvence ukončené hodnotou null.
static size_type length(const char_type *str);
Parametry
Str
Sekvence ukončená hodnotou null.
Poznámky
Statická členová funkce vrátí std::char_traits<char_type>::length(str)
.
regex_traits::locale_type
Typ uloženého objektu národního prostředí.
typedef T7 locale_type;
Poznámky
Typedef je synonymem pro typ, který zapouzdřuje národní prostředí. Ve specialicích regex_traits<char>
a regex_traits<wchar_t>
je to synonymum pro std::locale
.
regex_traits::lookup_classname
Namapuje posloupnost na třídu znaků.
template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;
Parametry
první
Začátek sekvence, která se má vyhledat.
poslední
Konec sekvence, která se má vyhledat.
Poznámky
Členová funkce vrátí hodnotu, která určuje třídu znaků pojmenovanou posloupností znaků, na kterou odkazuje jeho argumenty. Hodnota nezávisí na velikosti písmen v posloupnosti.
Specializace regex_traits<char>
rozpozná názvy "d"
, , "alnum"
"w"
"cntrl"
"blank"
"alpha"
"s"
, "digit"
, "graph"
, , "lower"
, "print"
, "punct"
, , "space"
"upper"
a "xdigit"
, všechny bez ohledu na případ.
Specializace regex_traits<wchar_t>
rozpozná názvy L"d"
, , L"alnum"
L"w"
L"cntrl"
L"blank"
L"alpha"
L"s"
, L"digit"
, L"graph"
, , L"lower"
, L"print"
, L"punct"
, , L"space"
L"upper"
a L"xdigit"
, všechny bez ohledu na případ.
regex_traits::lookup_collatename
Mapuje posloupnost na kompletující prvek.
template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;
Parametry
první
Začátek sekvence, která se má vyhledat.
poslední
Konec sekvence, která se má vyhledat.
Poznámky
Členské funkce vrátí objekt řetězce obsahující kompletující prvek odpovídající sekvenci [first, last)
nebo prázdný řetězec, pokud sekvence není platným kompletovacím prvkem.
regex_traits::regex_traits
Vytvoří objekt.
regex_traits();
Poznámky
Konstruktor vytvoří objekt, jehož uložený locale
objekt je inicializován do výchozího národního prostředí.
regex_traits::size_type
Typ délky sekvence.
typedef T6 size_type;
Poznámky
Typedef je synonymem pro celočíselný typ bez znaménka. Ve specialicích regex_traits<char>
a regex_traits<wchar_t>
je to synonymum pro std::size_t
.
Typedef je synonymem pro std::size_t
.
regex_traits::string_type
Typ řetězce prvků.
typedef basic_string<Elem> string_type;
Poznámky
Typedef je synonymem pro basic_string<Elem>
.
regex_traits::transform
Převede se na ekvivalentní seřazenou sekvenci.
template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;
Parametry
první
Začátek sekvence, která se má transformovat
poslední
Konec sekvence, která se má transformovat.
Poznámky
Členová funkce vrátí řetězec, který generuje pomocí pravidla transformace, které závisí na uloženém locale
objektu. Pro dvě sekvence znaků určené rozsahy [first1, last1)
iterátoru a [first2, last2)
, transform(first1, last1) < transform(first2, last2)
pokud sekvence znaků určená rozsahem [first1, last1)
iterátoru seřadí před posloupností znaků určenou rozsahem [first2, last2)
iterátoru .
regex_traits::transform_primary
Převede na ekvivalentní seřazenou sekvenci bez velkých a malých písmen.
template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;
Parametry
první
Začátek sekvence, která se má transformovat
poslední
Konec sekvence, která se má transformovat.
Poznámky
Členová funkce vrátí řetězec, který generuje pomocí pravidla transformace, které závisí na uloženém locale
objektu. Pro dvě sekvence znaků určené oblastmi [first1, last1)
iterátoru a [first2, last2)
, transform_primary(first1, last1) < transform_primary(first2, last2)
pokud sekvence znaků určená rozsahem [first1, last1)
iterátoru seřadí před sekvenci znaků určenou rozsahem [first2, last2)
iterátoru bez ohledu na malá a velká písmena nebo zvýraznění.
regex_traits::translate
Převede na ekvivalentní odpovídající prvek.
char_type translate(char_type ch) const;
Parametry
ch
Prvek, který chcete převést.
Poznámky
Členová funkce vrátí znak, který generuje pomocí pravidla transformace, které závisí na uloženém locale
objektu. Pro dva char_type
objekty ch1
a ch2
, translate(ch1) == translate(ch2)
pouze pokud ch1
a ch2
měl by se shodovat, když jeden nastane v definici regulárního výrazu a druhý nastane na odpovídající pozici v cílové sekvenci pro shodu citlivou na národní prostředí.
regex_traits::translate_nocase
Převede na ekvivalentní prvek porovnávání bez velkých písmen.
char_type translate_nocase(char_type ch) const;
Parametry
ch
Prvek, který chcete převést.
Poznámky
Členová funkce vrátí znak, který generuje pomocí pravidla transformace, které závisí na uloženém locale
objektu. Pro dva char_type
objekty ch1
a ch2
, translate_nocase(ch1) == translate_nocase(ch2)
pouze pokud ch1
a ch2
měl by se shodovat, když jeden nastane v definici regulárního výrazu a druhý nastane na odpovídající pozici v cílové sekvenci nerozlišující malá a velká písmena.
regex_traits::value
Převede prvek na hodnotu číslice.
int value(Elem ch, int radix) const;
Parametry
ch
Prvek, který chcete převést.
základ
Aritmetická základna, která se má použít.
Poznámky
Členová funkce vrátí hodnotu reprezentovanou znakem ch v základu radix nebo -1, pokud argument ch není platnou číslicí v základu radix. Funkce bude volána pouze s argumentem radixu 8, 10 nebo 16.
Viz také
<regex>
regex_constants – třída
regex_error – třída
<funkce regulárních výrazů>
regex_iterator – třída
<Operátory regulárních výrazů>
regex_token_iterator – třída
<regex> typedefs
<regex_traits char> – třída
<třída regex_traits wchar_t>