Clase regex_traits
Describe las características de los elementos para buscar coincidencias.
Sintaxis
template<class Elem>
class regex_traits
Parámetros
Elem
El tipo de elemento de carácter que se va describir.
Comentarios
La plantilla de clase describe varios rasgos de expresión regular de tipo Elem. La plantilla de clase basic_regex usa esta información para manipular los elementos de tipo Elem.
Cada objeto regex_traits
contiene un objeto de tipo regex_traits::locale
que usan algunas de sus funciones miembro. La configuración regional predeterminada es una copia de regex_traits::locale()
. La función miembro imbue
reemplaza el objeto de configuración regional, y la función miembro getloc
devuelve una copia del objeto de configuración regional.
Constructores
Constructor | Descripción |
---|---|
regex_traits | Este constructor se usa para construir el objeto . |
Typedefs
Nombre de tipo | Descripción |
---|---|
char_class_type | El tipo de designador de clases de caracteres. |
char_type | El tipo de un elemento. |
locale_type | El tipo de objeto de configuración regional almacenado. |
size_type | Tipo de una longitud de secuencia. |
string_type | Tipo de una cadena de elementos. |
Funciones miembro
Función de miembro | Descripción |
---|---|
getloc | Devuelve el objeto de configuración regional almacenado. |
imbue | Modifica el objeto de configuración regional almacenado. |
isctype | Realiza pruebas de pertenencia a una clase. |
length | Devuelve la longitud de una secuencia terminada en null. |
lookup_classname | Asigna una secuencia a una clase de caracteres. |
lookup_collatename | Asigna una secuencia a un elemento de intercalación. |
transform | Convierte a la secuencia ordenada equivalente. |
transform_primary | Convierte a la secuencia ordenada caseless equivalente. |
translate | Convierte a un elemento coincidente equivalente. |
translate_nocase | Convierte al elemento equivalente que coincide sin distinción entre mayúsculas y minúsculas. |
value | Convierte un elemento en un valor de dígito. |
Requisitos
Encabezado:<regex>
Espacio de nombres: std
Ejemplo
// 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
El tipo de designador de clases de caracteres.
typedef T8 char_class_type;
Comentarios
El tipo es un sinónimo de un tipo no especificado que designa clases de caracteres. Se pueden combinar los valores de este tipo mediante el operador |
para designar clases de caracteres que constituyen la unión de las clases designadas por los operandos.
regex_traits::char_type
El tipo de un elemento.
typedef Elem char_type;
Comentarios
La definición de tipo es un sinónimo del argumento de plantilla Elem
.
regex_traits::getloc
Devuelve el objeto de configuración regional almacenado.
locale_type getloc() const;
Comentarios
La función miembro devuelve el objeto locale
almacenado.
regex_traits::imbue
Modifica el objeto de configuración regional almacenado.
locale_type imbue(locale_type loc);
Parámetros
loc
El objeto de configuración regional que se va a almacenar.
Comentarios
La función miembro copia loc al objeto locale
almacenado y devuelve una copia del valor anterior del objeto locale
almacenado.
regex_traits::isctype
Realiza pruebas de pertenencia a una clase.
bool isctype(char_type ch, char_class_type cls) const;
Parámetros
Ch
Elemento que se va a comprobar.
cls
Las clases que se van a probar.
Comentarios
La función miembro devuelve true solo si el carácter ch está en la clase de caracteres designada por cls.
regex_traits::length
Devuelve la longitud de una secuencia terminada en null.
static size_type length(const char_type *str);
Parámetros
str
La secuencia terminada en null.
Comentarios
La función miembro estática devuelve std::char_traits<char_type>::length(str)
.
regex_traits::locale_type
El tipo de objeto de configuración regional almacenado.
typedef T7 locale_type;
Comentarios
La definición de tipo es un sinónimo de un tipo que encapsula las configuraciones regionales. En las especializaciones regex_traits<char>
y regex_traits<wchar_t>
es un sinónimo de std::locale
.
regex_traits::lookup_classname
Asigna una secuencia a una clase de caracteres.
template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;
Parámetros
first
Principio de la secuencia que se va a buscar.
last
Final de la secuencia que se va a buscar.
Comentarios
La función miembro devuelve un valor que designa la clase de caracteres denominada por la secuencia de caracteres a la que señalan sus argumentos. El valor es independiente de mayúsculas o minúsculas en los caracteres de la secuencia.
La especialización regex_traits<char>
reconoce los nombres "d"
, "s"
, "w"
, "alnum"
, "alpha"
, "blank"
, "cntrl"
, "digit"
, "graph"
, "lower"
, "print"
, "punct"
, "space"
, "upper"
y "xdigit"
sin tener en cuenta mayúsculas o minúsculas.
La especialización regex_traits<wchar_t>
reconoce los nombres 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"
y L"xdigit"
sin tener en cuenta mayúsculas o minúsculas.
regex_traits::lookup_collatename
Asigna una secuencia a un elemento de intercalación.
template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;
Parámetros
first
Principio de la secuencia que se va a buscar.
last
Final de la secuencia que se va a buscar.
Comentarios
La función miembro devuelve un objeto de cadena que contiene el elemento de intercalación correspondiente a la secuencia de [first, last)
o una cadena vacía si la secuencia no es un elemento de intercalación válido.
regex_traits::regex_traits
Este constructor se usa para construir el objeto .
regex_traits();
Comentarios
El constructor crea un objeto cuyo objeto locale
almacenado se inicializa en la configuración regional predeterminada.
regex_traits::size_type
Tipo de una longitud de secuencia.
typedef T6 size_type;
Comentarios
La definición de tipo es un sinónimo para un tipo entero sin signo. En las especializaciones regex_traits<char>
y regex_traits<wchar_t>
es un sinónimo de std::size_t
.
La definición de tipo es un sinónimo de std::size_t
.
regex_traits::string_type
Tipo de una cadena de elementos.
typedef basic_string<Elem> string_type;
Comentarios
La definición de tipo es un sinónimo de basic_string<Elem>
.
regex_traits::transform
Convierte a la secuencia ordenada equivalente.
template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;
Parámetros
first
Principio de la secuencia que se va a transformar.
last
Final de la secuencia que se va a transformar.
Comentarios
La función miembro devuelve una cadena que dicha función genera mediante una regla de transformación que depende del objeto locale
almacenado. En el caso de dos secuencias de caracteres designadas por los rangos de iterador [first1, last1)
y [first2, last2)
, transform(first1, last1) < transform(first2, last2)
si la secuencia de caracteres designada por el rango de iterador [first1, last1)
se ordena antes que la secuencia de caracteres designada por el rango de iterador [first2, last2)
.
regex_traits::transform_primary
Convierte a la secuencia ordenada caseless equivalente.
template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;
Parámetros
first
Principio de la secuencia que se va a transformar.
last
Final de la secuencia que se va a transformar.
Comentarios
La función miembro devuelve una cadena que dicha función genera mediante una regla de transformación que depende del objeto locale
almacenado. En el caso de dos secuencias de caracteres designadas por los rangos de iterador [first1, last1)
y [first2, last2)
, transform_primary(first1, last1) < transform_primary(first2, last2)
si la secuencia de caracteres designada por el rango de iterador [first1, last1)
se ordena antes que la secuencia de caracteres designada por el rango de iterador [first2, last2)
sin tener en cuenta mayúsculas y minúsculas o acentos.
regex_traits::translate
Convierte a un elemento coincidente equivalente.
char_type translate(char_type ch) const;
Parámetros
Ch
El elemento que se va a convertir.
Comentarios
La función miembro devuelve un carácter que dicha función genera mediante una regla de transformación que depende del objeto locale
almacenado. Para dos objetos char_type
y ch1
de ch2
, translate(ch1) == translate(ch2)
solo si ch1
y ch2
deben coincidir cuando uno aparece en la definición de la expresión regular y el otro en la posición correspondiente de la secuencia de destino para una coincidencia que depende de la configuración regional.
regex_traits::translate_nocase
Convierte al elemento equivalente que coincide sin distinción entre mayúsculas y minúsculas.
char_type translate_nocase(char_type ch) const;
Parámetros
Ch
El elemento que se va a convertir.
Comentarios
La función miembro devuelve un carácter que dicha función genera mediante una regla de transformación que depende del objeto locale
almacenado. Para dos objetos char_type
y ch1
de ch2
, translate_nocase(ch1) == translate_nocase(ch2)
solo si ch1
y ch2
deben coincidir cuando uno aparece en la definición de la expresión regular y el otro en la posición correspondiente de la secuencia de destino para una coincidencia que no distingue entre mayúsculas y minúsculas.
regex_traits::value
Convierte un elemento en un valor de dígito.
int value(Elem ch, int radix) const;
Parámetros
Ch
El elemento que se va a convertir.
radix
Las operaciones aritméticas base que se van a usar.
Comentarios
La función miembro devuelve el valor representado por el carácter ch en la base radix o -1 si ch no es un dígito válido en la base radix. La función solo se llamará con un argumento radix de 8, 10 o 16.
Consulte también
<regex>
regex_constants (Clase)
regex_error (Clase)
<regex> functions
regex_iterator (Clase)
<regex> operators
regex_token_iterator (Clase)
<regex> typedefs
Clase regex_traits<char>
regex_traits<wchar_t>