std::regex_traits<CharT>::lookup_collatename
From cppreference.com
< cpp | regex | regex traits
template
<
class ForwardIt >
string_type lookup_collatename( ForwardIt first, ForwardIt last ) const ; |
||
If the character sequence
[
first
,
last
)
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
Parameters
first, last | - | a pair of iterators which determines the sequence of characters that represents a collating element name |
Type requirements | ||
-
ForwardIt must meet the requirements of LegacyForwardIterator
|
Return value
The representation of the named collating element as a character string.
Example
Run this code
#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'; }
Possible output:
regex_traits<>::lookup_collatename("tilde") returns "~" true