Classe regex_traits
Descrive le caratteristiche degli elementi per la corrispondenza.
Sintassi
template<class Elem>
class regex_traits
Parametri
Elem
Il tipo di elemento di carattere da descrivere.
Osservazioni:
Il modello di classe descrive vari tratti di espressione regolare per il tipo Elem. Il modello di classe basic_regex Classe usa queste informazioni per modificare gli elementi di tipo Elem.
Ogni oggetto regex_traits
contiene un oggetto di tipo regex_traits::locale
usto da alcune delle sue funzioni membro. Le impostazioni locali predefinite sono una copia di regex_traits::locale()
. La funzione membro imbue
sostituisce l'oggetto delle impostazioni locali e la funzione membro getloc
restituisce una copia dell'oggetto delle impostazioni locali.
Costruttori
Costruttore | Descrizione |
---|---|
regex_traits | Costruisce l'oggetto. |
Typedef
Nome tipo | Descrizione |
---|---|
char_class_type | Tipo di identificatori delle classi di caratteri. |
char_type | Tipo di un elemento. |
locale_type | Tipo dell'oggetto impostazioni locali archiviato. |
size_type | Tipo di una lunghezza della sequenza. |
string_type | Il tipo di una stringa di elementi. |
Funzioni membro
Funzione membro | Descrizione |
---|---|
getloc | Restituisce l'oggetto delle impostazioni locali archiviate. |
imbue | Modifica l'oggetto delle impostazioni locali archiviate. |
isctype | Verifica l'appartenenza alla classe. |
length | Restituisce la lunghezza di una sequenza con terminazione Null. |
lookup_classname | Mappa una sequenza a una classe di caratteri. |
lookup_collatename | Esegue il mapping di una sequenza a un elemento di ordinamento. |
transform | Converte in una sequenza ordinata di elementi equivalenti. |
transform_primary | Esegue la conversione nella sequenza ordinata equivalente senza distinzione tra maiuscole e minuscole. |
Traduci | Esegue la conversione nell'elemento corrispondente. |
translate_nocase | Esegue la conversione nell'elemento corrispondente senza distinzione tra maiuscole e minuscole. |
value | Converte un elemento in un valore in cifre. |
Requisiti
Header:<regex>
Spazio dei nomi: std
Esempio
// 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
Tipo di identificatori delle classi di caratteri.
typedef T8 char_class_type;
Osservazioni:
Il tipo è un sinonimo di un tipo non specificato che designa le classi di caratteri. È possibile combinare i valori di questo tipo usando l'operatore |
per designare le classi di caratteri che costituiscono l'unione delle classi designate dagli operandi.
regex_traits::char_type
Tipo di un elemento.
typedef Elem char_type;
Osservazioni:
Typedef è un sinonimo dell'argomento di modello Elem
.
regex_traits::getloc
Restituisce l'oggetto delle impostazioni locali archiviate.
locale_type getloc() const;
Osservazioni:
La funzione membro restituisce l'oggetto locale
archiviato.
regex_traits::imbue
Modifica l'oggetto delle impostazioni locali archiviate.
locale_type imbue(locale_type loc);
Parametri
Loc
Oggetto impostazioni locali da archiviare.
Osservazioni:
La funzione membro copia loc nell'oggetto archiviato locale
e restituisce una copia del valore precedente dell'oggetto archiviato locale
.
regex_traits::isctype
Verifica l'appartenenza alla classe.
bool isctype(char_type ch, char_class_type cls) const;
Parametri
Ch
Elemento su cui eseguire il test.
cls
Classi da testare.
Osservazioni:
La funzione membro restituisce true solo se il carattere ch si trova nella classe di caratteri designata da cls.
regex_traits::length
Restituisce la lunghezza di una sequenza con terminazione Null.
static size_type length(const char_type *str);
Parametri
str
Sequenza con terminazione Null.
Osservazioni:
La funzione membro statica restituisce std::char_traits<char_type>::length(str)
.
regex_traits::locale_type
Tipo dell'oggetto impostazioni locali archiviato.
typedef T7 locale_type;
Osservazioni:
typedef è un sinonimo di un tipo che incapsula impostazioni locali. Nella specializzazioni regex_traits<char>
e regex_traits<wchar_t>
, è sinonimo di std::locale
.
regex_traits::lookup_classname
Mappa una sequenza a una classe di caratteri.
template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;
Parametri
first
Inizio della sequenza da cercare.
last
Fine della sequenza da cercare.
Osservazioni:
La funzione membro restituisce un valore che definisce la classe di caratteri specificata dalla sequenza di caratteri a cui puntano i relativi argomenti. Il valore non dipende dalle maiuscole/minuscole dei caratteri nella sequenza.
La specializzazione regex_traits<char>
riconosce i nomi "d"
, "s"
, "w"
, "alnum"
, "alpha"
, "blank"
, "cntrl"
, "digit"
, "graph"
, "lower"
, "print"
, "punct"
, "space"
, "upper"
e "xdigit"
, senza fare distinzione tra maiuscole e minuscole.
La specializzazione regex_traits<wchar_t>
riconosce i nomi 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"
e L"xdigit"
, senza fare distinzione tra maiuscole e minuscole.
regex_traits::lookup_collatename
Esegue il mapping di una sequenza a un elemento di ordinamento.
template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;
Parametri
first
Inizio della sequenza da cercare.
last
Fine della sequenza da cercare.
Osservazioni:
La funzione membro restituisce un oggetto stringa che contiene l'elemento di ordinamento corrispondente alla sequenza [first, last)
oppure una stringa vuota se la sequenza non è un elemento di ordinamento valido.
regex_traits::regex_traits
Costruisce l'oggetto.
regex_traits();
Osservazioni:
Il costruttore crea un oggetto il cui valore archiviato locale
viene inizializzato in base alle impostazioni locali predefinite.
regex_traits::size_type
Tipo di una lunghezza della sequenza.
typedef T6 size_type;
Osservazioni:
typedef è sinonimo di un tipo integrale non firmato. Nella specializzazioni regex_traits<char>
e regex_traits<wchar_t>
, è sinonimo di std::size_t
.
typedef è sinonimo di std::size_t
.
regex_traits::string_type
Il tipo di una stringa di elementi.
typedef basic_string<Elem> string_type;
Osservazioni:
typedef è sinonimo di basic_string<Elem>
.
regex_traits::transform
Converte in una sequenza ordinata di elementi equivalenti.
template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;
Parametri
first
Inizio della sequenza da trasformare.
last
Fine della sequenza da trasformare.
Osservazioni:
La funzione membro restituisce una stringa generata usando una regola di trasformazione che dipende dall'oggetto locale
archiviato. Per le sequenze di due caratteri definite dagli intervalli dell'iteratore [first1, last1)
e [first2, last2)
, transform(first1, last1) < transform(first2, last2)
se la sequenza di caratteri definita dall'intervallo dell'iteratore [first1, last1)
viene ordinata prima della sequenza di caratteri definita dall'intervallo dell'iteratore [first2, last2)
.
regex_traits::transform_primary
Esegue la conversione nella sequenza ordinata equivalente senza distinzione tra maiuscole e minuscole.
template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;
Parametri
first
Inizio della sequenza da trasformare.
last
Fine della sequenza da trasformare.
Osservazioni:
La funzione membro restituisce una stringa generata usando una regola di trasformazione che dipende dall'oggetto locale
archiviato. Per le sequenze di due caratteri designate dagli intervalli dell'iteratore [first1, last1)
e [first2, last2)
, transform_primary(first1, last1) < transform_primary(first2, last2)
se la sequenza di caratteri designata dall'intervallo dell'iteratore [first1, last1)
viene ordinata prima della sequenza di caratteri designata dall'intervallo dell'iteratore [first2, last2)
senza tenere conto della distinzione tra maiuscole e minuscole o degli accenti.
regex_traits::translate
Esegue la conversione nell'elemento corrispondente.
char_type translate(char_type ch) const;
Parametri
Ch
Elemento da convertire.
Osservazioni:
La funzione membro restituisce un carattere generato con una regola di trasformazione che dipende dall'oggetto locale
archiviato. Per due oggetti char_type
ch1
e ch2
, translate(ch1) == translate(ch2)
solo se ch1
e ch2
devono corrispondere quando uno è presente nella definizione di espressione regolare e l'altro in una posizione corrispondente della sequenza di destinazione per una corrispondenza che non tiene conto delle impostazioni locali.
regex_traits::translate_nocase
Esegue la conversione nell'elemento corrispondente senza distinzione tra maiuscole e minuscole.
char_type translate_nocase(char_type ch) const;
Parametri
Ch
Elemento da convertire.
Osservazioni:
La funzione membro restituisce un carattere generato con una regola di trasformazione che dipende dall'oggetto locale
archiviato. Per due oggetti char_type
ch1
e ch2
, translate_nocase(ch1) == translate_nocase(ch2)
solo se ch1
e ch2
devono corrispondere quando uno è presente nella definizione di espressione regolare e l'altro in una posizione corrispondente della sequenza di destinazione per una corrispondenza senza distinzione tra maiuscole e minuscole.
regex_traits::value
Converte un elemento in un valore in cifre.
int value(Elem ch, int radix) const;
Parametri
Ch
Elemento da convertire.
radix
Base aritmetica da usare.
Osservazioni:
La funzione membro restituisce il valore rappresentato dal carattere ch nel radix di base oppure -1 se ch non è una cifra valida nel radix di base. La funzione verrà chiamata solo con un argomento radix pari a 8, 10 o 16.
Vedi anche
<regex>
Classe regex_constants
Classe regex_error
<funzioni regex>
Classe regex_iterator
<Operatori regex>
Classe regex_token_iterator
<typedef regex>
<Classe char> regex_traits
<Classe regex_traits wchar_t>