Condividi tramite


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_typech1 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_typech1 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>