Compartilhar via


Classe regex_traits

Descreve as características dos elementos de correspondência.

Sintaxe

template<class Elem>
class regex_traits

Parâmetros

Elem
O tipo de elemento de caractere a ser descrito.

Comentários

O modelo de classe descreve várias características da expressão regular para o tipo Elem. O modelo de classe Classe basic_regex usa essas informações para manipular elementos do tipo Elem.

Cada objeto regex_traits contém um objeto do tipo regex_traits::locale que é usado por algumas de suas funções membro. A localidade padrão é uma cópia de regex_traits::locale(). A função membro imbue substitui o objeto de localidade e a função de membro getloc retorna uma cópia do objeto de localidade.

Construtores

Construtor Descrição
regex_traits Constrói o objeto .

Typedefs

Nome do tipo Descrição
char_class_type O tipo dos designadores da classe de caractere.
char_type O tipo de um elemento.
locale_type O tipo do objeto de localidade armazenado.
size_type O tipo de um tamanho de sequência.
string_type O tipo de uma cadeia de caracteres de elementos.

Funções de membro

Função de membro Descrição
getloc Retorna o objeto de localidade armazenado.
imbue Altera o objeto de localidade armazenado.
isctype Testa a associação da classe.
length Retorna o tamanho de uma sequência terminada em nulo.
lookup_classname Mapeia a sequência para uma classe de caractere.
lookup_collatename Mapeia uma sequência para um elemento de agrupamento.
transform É convertido na sequência ordenada equivalente.
transform_primary É convertido na sequência ordenada sem distinção de maiúsculas e minúsculas.
translate É convertido no elemento correspondente equivalente.
translate_nocase É convertido no elemento correspondente equivalente sem distinção de maiúsculas e minúsculas.
value Converte um elemento em um valor de dígito.

Requisitos

Cabeçalho:<regex>

Namespace: std

Exemplo

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

O tipo dos designadores da classe de caractere.

typedef T8 char_class_type;

Comentários

O tipo é um sinônimo de um tipo não especificado que designa a classes de caracteres. Valores desse tipo podem ser combinados usando o operador | para designar classes de caracteres que serão a união das classes designado pelo operandos.

regex_traits::char_type

O tipo de um elemento.

typedef Elem char_type;

Comentários

O typedef é um sinônimo do argumento de modelo Elem.

regex_traits::getloc

Retorna o objeto de localidade armazenado.

locale_type getloc() const;

Comentários

A função membro retorna o objeto locale armazenado.

regex_traits::imbuir

Altera o objeto de localidade armazenado.

locale_type imbue(locale_type loc);

Parâmetros

loc
O objeto de localidade a ser armazenado.

Comentários

A função membro copia loc para o objeto locale armazenado e retorna uma copia do valor anterior do objeto locale armazenado.

regex_traits::isctype

Testa a associação da classe.

bool isctype(char_type ch, char_class_type cls) const;

Parâmetros

Ch
O elemento para teste.

cls
As classes de teste.

Comentários

A função de membro retornará true somente se o caractere ch estiver na classe de caracteres designada por cls.

regex_traits::comprimento

Retorna o tamanho de uma sequência terminada em nulo.

static size_type length(const char_type *str);

Parâmetros

str
A sequência terminada em nulo.

Comentários

A função membro estática retorna std::char_traits<char_type>::length(str).

regex_traits::locale_type

O tipo do objeto de localidade armazenado.

typedef T7 locale_type;

Comentários

O typedef é um sinônimo de um tipo que encapsula as localidades. Nas especializações regex_traits<char> e regex_traits<wchar_t>, é um sinônimo de std::locale.

regex_traits::lookup_classname

Mapeia a sequência para uma classe de caractere.

template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;

Parâmetros

first
Início da sequência a ser pesquisada.

last
Fim da sequência a ser pesquisada.

Comentários

A função membro retorna um valor que designa a classe de caractere nomeada pela sequência de caracteres apontada por seus argumentos. O valor não depende da diferença entre maiúsculas e minúsculas dos caracteres na sequência.

A especialização regex_traits<char> reconhece os nomes "d", "s", "w", "alnum", "alpha", "blank", "cntrl", "digit", "graph", "lower", "print", "punct", "space", "upper" e "xdigit", sem considerar a diferença entre maiúsculas e minúsculas.

A especialização regex_traits<wchar_t> reconhece os nomes 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", sem considerar a diferença entre maiúsculas e minúsculas.

regex_traits::lookup_collatename

Mapeia uma sequência para um elemento de agrupamento.

template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;

Parâmetros

first
Início da sequência a ser pesquisada.

last
Fim da sequência a ser pesquisada.

Comentários

A função membro retorna um objeto de cadeia de caracteres que contém o elemento de agrupamento corresponde à sequência [first, last) ou uma cadeia de caracteres vazia se a sequência não for um elemento de agrupamento válido.

regex_traits::regex_traits

Constrói o objeto .

regex_traits();

Comentários

O construtor cria um objeto cujo armazenado objeto locale armazenado é inicializado para a localidade padrão.

regex_traits::size_type

O tipo de um tamanho de sequência.

typedef T6 size_type;

Comentários

O typedef é sinônimo de um tipo integral sem sinal. Nas especializações regex_traits<char> e regex_traits<wchar_t>, é um sinônimo de std::size_t.

O typedef é um sinônimo de std::size_t.

regex_traits::string_type

O tipo de uma cadeia de caracteres de elementos.

typedef basic_string<Elem> string_type;

Comentários

O typedef é um sinônimo de basic_string<Elem>.

regex_traits::transformar

É convertido na sequência ordenada equivalente.

template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;

Parâmetros

first
Início da sequência a ser transformada.

last
Fim da sequência a ser transformada.

Comentários

A função de membro retorna uma cadeia de caracteres que é gerada usando uma regra de transformação que depende do objeto locale armazenado. Para duas sequências de caracteres designadas pelos intervalos de iterador [first1, last1) e [first2, last2), transform(first1, last1) < transform(first2, last2) se a sequência de caracteres designada pelo intervalo de iterador [first1, last1) for classificada antes da sequência de caracteres designada pelo intervalo do iterador [first2, last2).

regex_traits::transform_primary

É convertido na sequência ordenada sem distinção de maiúsculas e minúsculas.

template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;

Parâmetros

first
Início da sequência a ser transformada.

last
Fim da sequência a ser transformada.

Comentários

A função de membro retorna uma cadeia de caracteres que é gerada usando uma regra de transformação que depende do objeto locale armazenado. Para duas sequências de caracteres designadas pelos intervalos de iterador [first1, last1) e [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) se a sequência de caracteres designada pelo intervalo de iterador [first1, last1) for classificada antes da sequência de caracteres designada pelo intervalo do iterador [first2, last2) sem considerar a distinção de maiúsculas e minúsculas nem acentos.

regex_traits::traduzir

É convertido no elemento correspondente equivalente.

char_type translate(char_type ch) const;

Parâmetros

Ch
O elemento a ser convertido.

Comentários

A função membro retorna um caracteres que é gerado usando uma regra de transformação que depende do objeto locale armazenado. Para dois objetos char_type, ch1 e ch2, translate(ch1) == translate(ch2) somente se ch1 e ch2 devem corresponder quando um ocorre na definição de expressão regular e o outro em uma posição correspondente na sequência de destino para uma correspondência com distinção de localidade.

regex_traits::translate_nocase

É convertido no elemento correspondente equivalente sem distinção de maiúsculas e minúsculas.

char_type translate_nocase(char_type ch) const;

Parâmetros

Ch
O elemento a ser convertido.

Comentários

A função membro retorna um caracteres que é gerado usando uma regra de transformação que depende do objeto locale armazenado. Para dois objetos char_type, ch1 e ch2, translate_nocase(ch1) == translate_nocase(ch2) somente se ch1 e ch2 devem corresponder quando um ocorre na definição de expressão regular e o outro em uma posição correspondente na sequência de destino para uma correspondência sem distinção entre maiúsculas e minúsculas.

regex_traits::valor

Converte um elemento em um valor de dígito.

int value(Elem ch, int radix) const;

Parâmetros

Ch
O elemento a ser convertido.

radix
A base aritmética a ser usada.

Comentários

A função membro retorna o valor representado pelo caractere ch na base radix ou -1 se ch não for um dígito válido na base radix. A função será chamada apenas com um argumento radix de 8, 10 ou 16.

Confira também

<regex>
Classe regex_constants
Classe regex_error
Funções <regex>
Classe regex_iterator
Operadores <regex>
Classe regex_token_iterator
<regex> typedefs
regex_traits<char> Class
regex_traits<wchar_t> Class