std::regex_traits<CharT>:: lookup_collatename
|
template
<
class
ForwardIt
>
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ; |
||
Если последовательность символов
[
first
,
last
)
представляет имя допустимого элемента сортировки в текущей установленной локали, возвращает имя этого элемента сортировки. В противном случае возвращает пустую строку.
Элементы сортировки — это символы, встречающиеся в POSIX-регулярных выражениях между
[.
и
.]
. Например,
[.a.]
соответствует символу
a
в локали C.
[.tilde.]
также соответствует символу
~
в локали C.
[.ch.]
соответствует диграфу
ch
в чешской локали, но вызывает
std::regex_error
с кодом ошибки
std::regex_constants::error_collate
в большинстве других локалей.
Параметры
| first, last | - | пара итераторов, определяющая последовательность символов, представляющую имя элемента сортировки |
| Требования к типу | ||
-
ForwardIt
должен удовлетворять требованиям
LegacyForwardIterator
.
|
||
Возвращаемое значение
Представление именованного элемента сортировки в виде строки символов.
Пример
#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'; }
Возможный вывод:
regex_traits<>::lookup_collatename("tilde") returns "~"
true