regex_traits 클래스
일치를 위해 요소의 특징을 설명합니다.
구문
template<class Elem>
class regex_traits
매개 변수
Elem
설명할 문자 요소 형식입니다.
설명
클래스 템플릿은 Elem 형식에 대한 다양한 정규식 특성을 설명합니다. 클래스 템플릿 basic_regex 클래스는 이 정보를 사용하여 Elem 형식의 요소를 조작합니다.
각 regex_traits
개체는 일부 멤버 함수에서 사용되는 regex_traits::locale
형식의 개체를 보유합니다. 기본 로캘은 regex_traits::locale()
의 복사본입니다. 멤버 함수 imbue
는 로캘 개체를 대체하고, 멤버 함수 getloc
는 로캘 개체의 복사본을 반환합니다.
생성자
생성자 | Description |
---|---|
regex_traits | 개체를 생성합니다. |
Typedef
형식 이름 | 설명 |
---|---|
char_class_type | 문자 클래스 지정자의 형식입니다. |
char_type | 요소의 형식입니다. |
locale_type | 저장된 로캘 개체의 형식입니다. |
size_type | 시퀀스 길이의 형식입니다. |
string_type | 요소 문자열의 형식입니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
getloc | 저장된 로캘 개체를 반환합니다. |
imbue | 저장된 로캘 개체를 변경합니다. |
isctype | 클래스 멤버 자격을 테스트합니다. |
length | null로 끝나는 시퀀스의 길이를 반환합니다. |
lookup_classname | 시퀀스를 문자 클래스에 매핑합니다. |
lookup_collatename | 데이터 정렬 요소에 시퀀스를 매핑합니다. |
변환 | 정렬된 해당 시퀀스로 변환합니다. |
transform_primary | 정렬된 해당 caseless 시퀀스로 변환합니다. |
translate | 일치하는 해당 요소로 변환합니다. |
translate_nocase | 해당 caseless 일치하는 요소로 변환합니다. |
value | 요소를 숫자 값으로 변환합니다. |
요구 사항
헤더:<regex>
네임스페이스: std
예시
// std__regex__regex_traits.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::regex_traits<char> Mytr;
int main()
{
Mytr tr;
Mytr::char_type ch = tr.translate('a');
std::cout << "translate('a') == 'a' == " << std::boolalpha
<< (ch == 'a') << std::endl;
std::cout << "nocase 'a' == 'A' == " << std::boolalpha
<< (tr.translate_nocase('a') == tr.translate_nocase('A'))
<< std::endl;
const char *lbegin = "abc";
const char *lend = lbegin + strlen(lbegin);
Mytr::size_type size = tr.length(lbegin);
std::cout << "length(\"abc\") == " << size <<std::endl;
Mytr::string_type str = tr.transform(lbegin, lend);
std::cout << "transform(\"abc\") < \"abc\" == " << std::boolalpha
<< (str < "abc") << std::endl;
const char *ubegin = "ABC";
const char *uend = ubegin + strlen(ubegin);
std::cout << "primary \"ABC\" < \"abc\" == " << std::boolalpha
<< (tr.transform_primary(ubegin, uend) <
tr.transform_primary(lbegin, lend))
<< std::endl;
const char *dig = "digit";
Mytr::char_class_type cl = tr.lookup_classname(dig, dig + 5);
std::cout << "class digit == d == " << std::boolalpha
<< (cl == tr.lookup_classname(dig, dig + 1))
<< std::endl;
std::cout << "'3' is digit == " <<std::boolalpha
<< tr.isctype('3', tr.lookup_classname(dig, dig + 5))
<< std::endl;
std::cout << "hex C == " << tr.value('C', 16) << std::endl;
// other members
str = tr.lookup_collatename(dig, dig + 5);
Mytr::locale_type loc = tr.getloc();
tr.imbue(loc);
return (0);
}
translate('a') == 'a' == true
nocase 'a' == 'A' == true
length("abc") == 3
transform("abc") < "abc" == false
primary "ABC" < "abc" == false
class digit == d == true
'3' is digit == true
hex C == 12
regex_traits::char_class_type
문자 클래스 지정자의 형식입니다.
typedef T8 char_class_type;
설명
형식은 문자 클래스를 지정하는 지정되지 않은 형식의 동의어입니다. |
연산자를 사용하여 이 형식의 값을 결합하면 피연산자가 지정한 클래스의 합집합인 문자 클래스를 지정할 수 있습니다.
regex_traits::char_type
요소의 형식입니다.
typedef Elem char_type;
설명
typedef는 템플릿 인수 Elem
의 동의어입니다.
regex_traits::getloc
저장된 로캘 개체를 반환합니다.
locale_type getloc() const;
설명
멤버 함수는 저장된 locale
개체를 반환합니다.
regex_traits::imbue
저장된 로캘 개체를 변경합니다.
locale_type imbue(locale_type loc);
매개 변수
loc(loc)
저장할 로캘 개체입니다.
설명
멤버 함수는 loc를 저장된 개체에 복사하고 저장된 locale
개체의 이전 값 복사본을 locale
반환합니다.
regex_traits::isctype
클래스 멤버 자격을 테스트합니다.
bool isctype(char_type ch, char_class_type cls) const;
매개 변수
ch
테스트할 요소입니다.
cls
테스트할 클래스입니다.
설명
멤버 함수는 ch 문자가 cls로 지정된 문자 클래스에 있는 경우에만 true를 반환합니다.
regex_traits::length
null로 끝나는 시퀀스의 길이를 반환합니다.
static size_type length(const char_type *str);
매개 변수
str
null로 끝나는 시퀀스입니다.
설명
정적 멤버 함수는 std::char_traits<char_type>::length(str)
를 반환합니다.
regex_traits::locale_type
저장된 로캘 개체의 형식입니다.
typedef T7 locale_type;
설명
typedef는 로캘을 캡슐화하는 형식의 동의어입니다. 특수화 regex_traits<char>
및 regex_traits<wchar_t>
에서 std::locale
의 동의어입니다.
regex_traits::lookup_classname
시퀀스를 문자 클래스에 매핑합니다.
template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;
매개 변수
first
조회할 시퀀스의 시작입니다.
last
조회할 시퀀스의 끝입니다.
설명
멤버 함수는 해당 인수가 가리키는 문자 시퀀스로 이름이 지정된 문자 클래스를 지정하는 값을 반환합니다. 값은 시퀀스에 있는 문자의 대/소문자에 따라 달라지지 않습니다.
특수화 regex_traits<char>
는 모두 대/소문자를 무시하고 "d"
, "s"
, "w"
, "alnum"
, "alpha"
, "blank"
, "cntrl"
, "digit"
, "graph"
, "lower"
, "print"
, "punct"
, "space"
, "upper"
및 "xdigit"
이름을 인식합니다.
특수화 regex_traits<wchar_t>
는 모두 대/소문자를 무시하고 L"d"
, L"s"
, L"w"
, L"alnum"
, L"alpha"
, L"blank"
, L"cntrl"
, L"digit"
, L"graph"
, L"lower"
, L"print"
, L"punct"
, L"space"
, L"upper"
및 L"xdigit"
이름을 인식합니다.
regex_traits::lookup_collatename
데이터 정렬 요소에 시퀀스를 매핑합니다.
template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;
매개 변수
first
조회할 시퀀스의 시작입니다.
last
조회할 시퀀스의 끝입니다.
설명
멤버 함수는 [first, last)
시퀀스에 해당하는 데이터 정렬 요소를 포함하는 문자열 개체를 반환하거나, 시퀀스가 유효한 데이터 정렬 요소가 아닌 경우 빈 문자열을 반환합니다.
regex_traits::regex_traits
개체를 생성합니다.
regex_traits();
설명
생성자는 저장된 locale
개체가 기본 로캘로 초기화되는 개체를 생성합니다.
regex_traits::size_type
시퀀스 길이의 형식입니다.
typedef T6 size_type;
설명
typedef는 부호 없는 정수 형식의 동의어입니다. 특수화 regex_traits<char>
및 regex_traits<wchar_t>
에서 std::size_t
의 동의어입니다.
typedef는 std::size_t
의 동의어입니다.
regex_traits::string_type
요소 문자열의 형식입니다.
typedef basic_string<Elem> string_type;
설명
typedef는 basic_string<Elem>
의 동의어입니다.
regex_traits::transform
정렬된 해당 시퀀스로 변환합니다.
template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;
매개 변수
first
변환할 시퀀스의 시작입니다.
last
변환할 시퀀스의 끝입니다.
설명
멤버 함수는 저장된 locale
개체에 따라 달라지는 변환 규칙을 사용하여 생성하는 문자열을 반환합니다. 반복기 범위 [first1, last1)
및 [first2, last2)
로 지정된 두 문자 시퀀스에 대해, 반복기 범위 transform(first1, last1) < transform(first2, last2)
로 지정된 문자 시퀀스가 반복기 범위 [first1, last1)
로 지정된 문자 시퀀스보다 먼저 정렬되면 [first2, last2)
입니다.
regex_traits::transform_primary
정렬된 해당 caseless 시퀀스로 변환합니다.
template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;
매개 변수
first
변환할 시퀀스의 시작입니다.
last
변환할 시퀀스의 끝입니다.
설명
멤버 함수는 저장된 locale
개체에 따라 달라지는 변환 규칙을 사용하여 생성하는 문자열을 반환합니다. 반복기 범위 [first1, last1)
및 [first2, last2)
로 지정된 두 문자 시퀀스에 대해, 반복기 범위 transform_primary(first1, last1) < transform_primary(first2, last2)
로 지정된 문자 시퀀스가 대/소문자 또는 악센트에 관계없이 반복기 범위 [first1, last1)
로 지정된 문자 시퀀스보다 먼저 정렬되면 [first2, last2)
입니다.
regex_traits::translate
일치하는 해당 요소로 변환합니다.
char_type translate(char_type ch) const;
매개 변수
ch
변환할 요소입니다.
설명
멤버 함수는 저장된 locale
개체에 따라 달라지는 변환 규칙을 사용하여 생성하는 문자를 반환합니다. 두 char_type
개체 ch1
및 ch2
의 경우 하나는 정규식 정의에 나타나고 다른 하나는 대/소문자를 구분하는 일치에 대한 대상 시퀀스의 해당 위치에 나타날 때 translate(ch1) == translate(ch2)
및 ch1
가 일치해야 하는 경우에만 ch2
입니다.
regex_traits::translate_nocase
해당 caseless 일치하는 요소로 변환합니다.
char_type translate_nocase(char_type ch) const;
매개 변수
ch
변환할 요소입니다.
설명
멤버 함수는 저장된 locale
개체에 따라 달라지는 변환 규칙을 사용하여 생성하는 문자를 반환합니다. 두 char_type
개체 ch1
및 ch2
의 경우 하나는 정규식 정의에 나타나고 다른 하나는 대/소문자를 구분하지 않는 일치에 대한 대상 시퀀스의 해당 위치에 나타날 때 translate_nocase(ch1) == translate_nocase(ch2)
및 ch1
가 일치해야 하는 경우에만 ch2
입니다.
regex_traits::value
요소를 숫자 값으로 변환합니다.
int value(Elem ch, int radix) const;
매개 변수
ch
변환할 요소입니다.
radix
사용할 기본 산술입니다.
설명
멤버 함수는 기본 radix에서 문자 ch로 표현되는 값을 반환하고, ch가 기본 radix에서 유효한 숫자가 아니면 -1을 반환합니다. 이 함수는 8, 10 또는 16의 radix 인수로만 호출됩니다.
참고 항목
<regex>
regex_constants 클래스
regex_error 클래스
<regex> 함수
regex_iterator 클래스
<regex 연산자>
regex_token_iterator 클래스
<regex> typedefs
<regex_traits char> 클래스
<regex_traits wchar_t> 클래스