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. |
valeur | 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_type
ch1
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_type
ch1
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>