Partager via


Classe regex_traits

Décrit les caractéristiques des éléments pour la mise en correspondance.

Syntaxe

template<class Elem>
class regex_traits

Paramètres

Elem
Type d’élément caractère à décrire.

Notes

Le modèle de classe décrit différentes caractéristiques d’expression régulière pour le type Elem. Le modèle de classe basic_regex Classe utilise ces informations pour manipuler des éléments de type Elem.

Chaque objet regex_traits a un objet de type regex_traits::locale qui est utilisé par certaines de ses fonctions membres. Les paramètres régionaux par défaut sont une copie de regex_traits::locale(). La fonction membre imbue remplace l’objet de paramètres régionaux , et la fonction membre getloc retourne une copie de l’objet de paramètres régionaux.

Constructeurs

Constructeur Description
regex_traits Construit l’objet.

Typedefs

Nom de type Description
char_class_type Type des désignateurs de classes de caractères.
char_type Type d’un élément.
locale_type Type de l’objet de paramètres régionaux stocké.
size_type Type d'une longueur de séquence.
string_type Type d'une chaîne d'éléments.

Fonctions Membre

Fonction membre Description
getloc Retourne l’objet des paramètres régionaux stockés.
imbue Modifie l’objet des paramètres régionaux stocké.
isctype Teste l’appartenance à la classe.
length Retourne la longueur d’une séquence terminée par null.
lookup_classname Mappe une séquence à une classe de caractères.
lookup_collatename Mappe une séquence à un élément de classement.
transform Convertit en séquence ordonnée équivalente.
transform_primary Convertit en séquence ordonnée équivalente ne respectant pas la casse.
translate Convertit en un élément correspondant équivalent.
translate_nocase Convertit en un élément correspondant équivalent ne respectant pas la casse.
value Convertit un élément en valeur numérique.

Spécifications

Header :<regex>

Espace de noms : std

Exemple

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

Type des désignateurs de classes de caractères.

typedef T8 char_class_type;

Notes

Le type est un synonyme pour un type non spécifique qui désigne les classes de caractères. Vous pouvez combiner les valeurs de ce type à l’aide de l’opérateur | pour désigner les classes de caractères qui représentent l’union des classes désignées par les opérandes.

regex_traits ::char_type

Type d’un élément.

typedef Elem char_type;

Notes

Le typedef est un synonyme de l'argument de modèle Elem.

regex_traits ::getloc

Retourne l’objet des paramètres régionaux stockés.

locale_type getloc() const;

Notes

La fonction membre retourne l’objet locale stocké.

regex_traits ::imbue

Modifie l’objet des paramètres régionaux stocké.

locale_type imbue(locale_type loc);

Paramètres

Loc
Objet de paramètres régionaux à stocker.

Notes

La fonction membre copie loc dans l’objet stocké locale et retourne une copie de la valeur précédente de l’objet stocké locale .

regex_traits ::isctype

Teste l’appartenance à la classe.

bool isctype(char_type ch, char_class_type cls) const;

Paramètres

Ch
Élément à tester.

cls
Classes à tester.

Notes

La fonction membre retourne true uniquement si le caractère ch se trouve dans la classe de caractères désignée par cls.

regex_traits ::length

Retourne la longueur d’une séquence terminée par null.

static size_type length(const char_type *str);

Paramètres

str
Séquence terminée par null.

Notes

La fonction membre statique retourne std::char_traits<char_type>::length(str).

regex_traits ::locale_type

Type de l’objet de paramètres régionaux stocké.

typedef T7 locale_type;

Notes

Le typedef est un synonyme d’un type qui encapsule les paramètres régionaux. Dans les spécialisations regex_traits<char> et regex_traits<wchar_t> , il s'agit d'un synonyme de std::locale.

regex_traits ::lookup_classname

Mappe une séquence à une classe de caractères.

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

Paramètres

first
Début de la séquence à rechercher.

last
Fin de la séquence à rechercher.

Notes

La fonction membre retourne une valeur qui désigne la classe de caractères nommée par la séquence de caractères vers laquelle pointent ses arguments. La valeur ne dépend pas de la casse des caractères dans la séquence.

La spécialisation regex_traits<char> reconnaît les noms "d", "s", "w", "alnum", "alpha", "blank", "cntrl", "digit", "graph", "lower", "print", "punct", "space", "upper" et "xdigit", tous sans respect de la casse.

La spécialisation regex_traits<wchar_t> reconnaît les noms 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" et L"xdigit", tous sans respect de la casse.

regex_traits ::lookup_collatename

Mappe une séquence à un élément de classement.

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

Paramètres

first
Début de la séquence à rechercher.

last
Fin de la séquence à rechercher.

Notes

La fonction membre retourne un objet string contenant l’élément de classement correspondant à la séquence [first, last), ou une chaîne vide si la séquence n’est pas un élément de classement valide.

regex_traits ::regex_traits

Construit l’objet.

regex_traits();

Notes

Le constructeur construit un objet dont l'objet locale stocké est initialisé avec les paramètres régionaux par défaut.

regex_traits ::size_type

Type d'une longueur de séquence.

typedef T6 size_type;

Notes

Le typedef est un synonyme d'un type intégral non signé. Dans les spécialisations regex_traits<char> et regex_traits<wchar_t> , il s'agit d'un synonyme de std::size_t.

Le typedef est un synonyme de std::size_t.

regex_traits ::string_type

Type d'une chaîne d'éléments.

typedef basic_string<Elem> string_type;

Notes

Le typedef est un synonyme de basic_string<Elem>.

regex_traits ::transform

Convertit en séquence ordonnée équivalente.

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

Paramètres

first
Début de la séquence à transformer.

last
Fin de la séquence à transformer.

Notes

La fonction membre retourne une chaîne qu’elle génère à l’aide d’une règle de transformation qui dépend de l’objet locale stocké. Pour deux séquences de caractères désignées par les plages d’itérateurs [first1, last1) et [first2, last2), transform(first1, last1) < transform(first2, last2) si la séquence de caractères désignée par la plage d’itérateurs [first1, last1) est triée avant la séquence de caractères désignée par la plage d’itérateurs [first2, last2).

regex_traits ::transform_primary

Convertit en séquence ordonnée équivalente ne respectant pas la casse.

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

Paramètres

first
Début de la séquence à transformer.

last
Fin de la séquence à transformer.

Notes

La fonction membre retourne une chaîne qu’elle génère à l’aide d’une règle de transformation qui dépend de l’objet locale stocké. Pour deux séquences de caractères désignées par les plages d’itérateurs [first1, last1) et [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) si la séquence de caractères désignée par la plage d’itérateurs [first1, last1) est triée avant la séquence de caractères désignée par la plage d’itérateurs [first2, last2) indépendamment de la casse ou des accents.

regex_traits ::translate

Convertit en un élément correspondant équivalent.

char_type translate(char_type ch) const;

Paramètres

Ch
Élément à convertir.

Notes

La fonction membre retourne un caractère qu’elle génère à l’aide d’une règle de transformation qui dépend de l’objet locale stocké. Pour deux objets char_typech1 et ch2, translate(ch1) == translate(ch2) seulement si ch1 et ch2 doivent correspondre quand un des objets est présent dans la définition de l’expression régulière et que l’autre se trouve à la position correspondante dans la séquence cible pour une correspondance respectant les paramètres régionaux.

regex_traits ::translate_nocase

Convertit en un élément correspondant équivalent ne respectant pas la casse.

char_type translate_nocase(char_type ch) const;

Paramètres

Ch
Élément à convertir.

Notes

La fonction membre retourne un caractère qu’elle génère à l’aide d’une règle de transformation qui dépend de l’objet locale stocké. Pour deux objets char_typech1 et ch2, translate_nocase(ch1) == translate_nocase(ch2) seulement si ch1 et ch2 doivent correspondre quand un des objets est présent dans la définition de l’expression régulière et que l’autre se trouve à la position correspondante dans la séquence cible pour une correspondance ne respectant pas la casse.

regex_traits ::value

Convertit un élément en valeur numérique.

int value(Elem ch, int radix) const;

Paramètres

Ch
Élément à convertir.

radix
Base arithmétique à utiliser.

Notes

La fonction membre retourne la valeur représentée par le caractère ch dans le radix de base, ou -1 si ch n’est pas un chiffre valide dans le radix de base. La fonction est appelée uniquement avec un argument radix de 8, 10 ou 16.

Voir aussi

<regex>
regex_constants, classe
regex_error, classe
<fonctions regex>
regex_iterator, classe
<opérateurs regex>
regex_token_iterator, classe
<regex> typedefs
<regex_traits classe char>
<classe regex_traits wchar_t>