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 secuencia de caracteres [ first , last ) representa el nombre de un elemento de intercalación válido en la localidad actualmente imbucida, devuelve el nombre de ese elemento de intercalación. De lo contrario, devuelve una cadena vacía.

Los elementos de intercalación son los símbolos que se encuentran en las expresiones regulares POSIX entre [. y .] . Por ejemplo, [.a.] coincide con el carácter a en la configuración regional C. [.tilde.] coincide con el carácter ~ en la configuración regional C también. [.ch.] coincide con el dígrafo ch en la configuración regional checa, pero genera std::regex_error con código de error std::regex_constants::error_collate en la mayoría de las otras configuraciones regionales.

Parámetros

first, last - un par de iteradores que determina la secuencia de caracteres que representa un nombre de elemento de intercalación
Requisitos de tipo
-
ForwardIt debe cumplir con los requisitos de LegacyForwardIterator .

Valor de retorno

La representación del elemento de intercalación nombrado como una cadena de caracteres.

Ejemplo

#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"; // C locale collation order: 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';
}

Salida posible:

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