std::regex_traits<CharT>:: lookup_collatename
|
template
<
class
ForwardIt
>
string_type lookup_collatename ( ForwardIt first, ForwardIt last ) const ; |
||
문자 시퀀스
[
first
,
last
)
가 현재 임뷰드된 로캘에서 유효한 콜레이팅 엘리먼트의 이름을 나타내는 경우, 해당 콜레이팅 엘리먼트의 이름을 반환합니다. 그렇지 않으면 빈 문자열을 반환합니다.
콜레이팅 요소(Collating elements)는 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