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 ;

Falls die Zeichenfolge [ first , last ) den Namen eines gültigen Sortierelements in der aktuell eingestellten Locale repräsentiert, gibt sie den Namen dieses Sortierelements zurück. Andernfalls wird eine leere Zeichenkette zurückgegeben.

Kollationselemente sind die Symbole in POSIX-Regulären Ausdrücken zwischen [. und .] . Zum Beispiel passt [.a.] auf das Zeichen a in der C-Locale. [.tilde.] passt ebenfalls auf das Zeichen ~ in der C-Locale. [.ch.] passt auf das Digraph ch in der tschechischen Locale, erzeugt aber std::regex_error mit Fehlercode std::regex_constants::error_collate in den meisten anderen Locales.

Parameter

first, last - ein Paar von Iteratoren, das die Zeichenfolge bestimmt, die einen Kollationselementnamen darstellt
Typanforderungen
-
ForwardIt muss die Anforderungen von LegacyForwardIterator erfüllen.

Rückgabewert

Die Darstellung des benannten Sortierelements als Zeichenkette.

Beispiel

#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';
}

Mögliche Ausgabe:

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