std::regex_traits::lookup_collatename

来自cppreference.com
< cpp‎ | regex‎ | regex traits

template< class ForwardIt >
string_type lookup_collatename( ForwardIt first, ForwardIt last ) const;
如果该字符序列[first, last)表示在当前充满的区域设置一个有效的校对元素的名称,返回用于校对元素的名称。否则,返回一个空字符串.
原文:
If the character sequence [first, last) represents the name of a valid collating element in the currently imbued locale, returns the name of that collating element. Otherwise, returns an empty string.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
集合元素的符号[..]POSIX正则表达式之间。例如,[.a.]匹配字符a在C语言环境。 [.tilde.]~在C语言环境相匹配的字符为好。 [.ch.]相匹配的有向图ch在捷克区域设置,但会产生错误代码std::regex_error在大多数其他语言环境的std::regex_constants::error_collate.
原文:
Collating elements are the symbols found in POSIX regular expressions between [. and .]. For example, [.a.] matches the character a in the C locale. [.tilde.] matches the character ~ in the C locale as well. [.ch.] matches the digraph ch in Czech locale, but generates std::regex_error with error code std::regex_constants::error_collate in most other locales.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 参数

first, last -
一对迭代器确定的字符序列,它表示一个集合元素的名称
原文:
a pair of iterators which determines the sequence of characters that represents a collating element name
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
类型要求
-
ForwardIt 必须满足 ForwardIterator 的要求。

[编辑] 返回值

作为一个字符串命名的排序元素的代表性.
原文:
The representation of the named collating element as a character string.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#include <iostream>
#include <string>
#include <regex>
 
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