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