Namespaces
Variants

std::regex_traits<CharT>:: lookup_collatename

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
template < class ForwardIt >
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ;

Si la séquence de caractères [ first , last ) représente le nom d'un élément de collation valide dans les paramètres régionaux actuellement imbriqués, retourne le nom de cet élément de collation. Sinon, retourne une chaîne vide.

Les éléments de collation sont les symboles trouvés dans les expressions régulières POSIX entre [. et .] . Par exemple, [.a.] correspond au caractère a dans la locale C. [.tilde.] correspond également au caractère ~ dans la locale C. [.ch.] correspond au digraphe ch dans la locale tchèque, mais génère std::regex_error avec le code d'erreur std::regex_constants::error_collate dans la plupart des autres locales.

Paramètres

first, last - une paire d'itérateurs qui détermine la séquence de caractères représentant un nom d'élément de collation
Exigences de type
-
ForwardIt doit satisfaire aux exigences de LegacyForwardIterator .

Valeur de retour

La représentation de l'élément de collation nommé sous forme de chaîne de caractères.

Exemple

#include <iostream>
#include <regex>
#include <string>
struct noisy_traits : std::regex_traits<char>
{
    template<class Iter>
    string_type lookup_collatename(Iter first, Iter last) const
    {
        string_type result = regex_traits::lookup_collatename(first, last);
        std::cout << "regex_traits<>::lookup_collatename(\""
                  << string_type(first, last)
                  << "\") returns \"" << result << "\"\n";
        return result;
    }
};
int main()
{
    std::string str = "z|}a"; // Ordre de collation locale C : x,y,z,{,|,},~
    std::basic_regex<char, noisy_traits> re("[x-[.tilde.]]*a", std::regex::basic);
    std::cout << std::boolalpha << std::regex_match(str, re) << '\n';
}

Sortie possible :

regex_traits<>::lookup_collatename("tilde") returns "~"
true