std::regex_traits<CharT>:: lookup_collatename
|
template
<
class
ForwardIt
>
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ; |
||
|
template
<
class
ForwardIt
>
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ; |
||
`タグ内のC++コード(`template
string_type lookup_collatename(ForwardIt first, ForwardIt last) const;`)は翻訳せず、元のフォーマットを保持しています。
文字シーケンス
[
first
,
last
)
が現在適用されているロケールにおける有効な照合要素の名前を表す場合、その照合要素の名前を返します。それ以外の場合は、空の文字列を返します。
照合要素は、POSIX正規表現において
[.
と
.]
の間に見つかる記号です。例えば、
[.a.]
はCロケールにおける文字
a
にマッチします。
[.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ロケールの照合順序: 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