Compartir vía


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>