std::regex_traits<CharT>::lookup_collatename
來自 cppreference.com
< cpp | regex | regex_traits
template< class ForwardIt > string_type lookup_collatename( ForwardIt first, ForwardIt last ) const; |
||
如果字元序列 [
first,
last)
表示當前區域設定中有效排序元素的名稱,則返回該排序元素的名稱。否則,返回空字串。
排序元素是 POSIX 正則表示式中 [.
和 .]
之間的符號。例如,在 C 區域設定中,[.a.]
匹配字元 a
。在 C 區域設定中,[.tilde.]
也匹配字元 ~
。在捷克語區域設定中,[.ch.]
匹配雙字母 ch
,但在大多數其他區域設定中,它會生成錯誤碼為 std::regex_constants::error_collate 的 std::regex_error。
[編輯] 引數
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