名前空間
変種
操作

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 の正規表現における [..] の間のシンボルです。 例えば [.a.] は C ロケールにおいて文字 a にマッチします。 同様に [.tilde.] は C ロケールにおいて文字 ~ にマッチします。 [.ch.] はチェコ語ロケールにおいては二重音字 ch にマッチしますが、他のほとんどのロケールではエラーコード std::regex_constants::error_collate を持つ std::regex_error を生成します。

[編集]引数

first, last - 照合要素名を表す文字シーケンスを表す一組のイテレータ
型の要件
-
ForwardItLegacyForwardIterator の要件を満たさなければなりません。

[編集]戻り値

名前付き照合要素の文字列表現。

[編集]

#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
close