std::regex_traits<CharT>:: lookup_collatename
|
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