match_results 클래스
부분 일치 시퀀스를 보유합니다.
구문
template <class BidIt, class Alloc>
class match_results
매개 변수
BidIt
부분 일치에 대한 반복기 형식입니다.
할당(Alloc)
스토리지 관리를 위한 할당자의 형식입니다.
설명
클래스 템플릿은 정규식 검색에 의해 생성된 형식 sub_match<BidIt>
요소의 수정할 수 없는 시퀀스를 제어하는 개체를 설명합니다. 각 요소는 해당 요소에 해당하는 캡처 그룹과 일치하는 하위 시퀀스를 가리킵니다.
생성자
생성자 | Description |
---|---|
match_results | 개체를 생성합니다. |
Typedef
형식 이름 | 설명 |
---|---|
allocator_type | 스토리지 관리를 위한 할당자의 형식입니다. |
char_type | 요소의 형식입니다. |
const_iterator | 부분 일치에 대한 상수 반복기 형식입니다. |
const_reference | 요소 const 참조의 형식입니다. |
difference_type | 반복기 차이의 형식입니다. |
iterator | 부분 일치에 대한 반복기 형식입니다. |
reference | 요소 참조의 형식입니다. |
size_type | 부분 일치 수의 형식입니다. |
string_type | 문자열의 형식입니다. |
value_type | 부분 일치의 형식입니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
begin | 부분 일치 시퀀스의 시작을 지정합니다. |
empty | 부분 일치가 없는지 테스트합니다. |
end | 부분 일치 시퀀스의 끝을 지정합니다. |
format | 부분 일치의 서식을 지정합니다. |
get_allocator | 저장된 할당자를 반환합니다. |
length | 부분 일치의 길이를 반환합니다. |
max_size | 부분 일치의 최대 수를 가져옵니다. |
위치 | 하위 그룹의 시작 오프셋을 가져옵니다. |
prefix | 첫 번째 부분 일치 전의 시퀀스를 가져옵니다. |
size | 부분 일치 수를 계산합니다. |
str | 부분 일치 항목을 반환합니다. |
접미사 | 마지막 부분 일치 후 시퀀스를 가져옵니다. |
swap | 두 match_results 개체를 바꿉니다. |
연산자
연산자 | 설명 |
---|---|
operator= | match_results 개체를 복사합니다. |
operator[] | 하위 개체에 액세스합니다. |
요구 사항
헤더:<regex>
네임스페이스: std
예시
// std__regex__match_results.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
int main()
{
std::regex rx("c(a*)|(b)");
std::cmatch mr;
std::regex_search("xcaaay", mr, rx);
std::cout << "prefix: matched == " << std::boolalpha
<< mr.prefix().matched
<< ", value == " << mr.prefix() << std::endl;
std::cout << "whole match: " << mr.length() << " chars, value == "
<< mr.str() << std::endl;
std::cout << "suffix: matched == " << std::boolalpha
<< mr.suffix().matched
<< ", value == " << mr.suffix() << std::endl;
std::cout << std::endl;
std::string fmt("\"c(a*)|(b)\" matched \"$&\"\n"
"\"(a*)\" matched \"$1\"\n"
"\"(b)\" matched \"$2\"\n");
std::cout << mr.format(fmt) << std::endl;
std::cout << std::endl;
// index through submatches
for (size_t n = 0; n < mr.size(); ++n)
{
std::cout << "submatch[" << n << "]: matched == " << std::boolalpha
<< mr[n].matched <<
" at position " << mr.position(n) << std::endl;
std::cout << " " << mr.length(n)
<< " chars, value == " << mr[n] << std::endl;
}
std::cout << std::endl;
// iterate through submatches
for (std::cmatch::iterator it = mr.begin(); it != mr.end(); ++it)
{
std::cout << "next submatch: matched == " << std::boolalpha
<< it->matched << std::endl;
std::cout << " " << it->length()
<< " chars, value == " << *it << std::endl;
}
std::cout << std::endl;
// other members
std::cout << "empty == " << std::boolalpha << mr.empty() << std::endl;
std::cmatch::allocator_type al = mr.get_allocator();
std::cmatch::string_type str = std::string("x");
std::cmatch::size_type maxsiz = mr.max_size();
std::cmatch::char_type ch = 'x';
std::cmatch::difference_type dif = mr.begin() - mr.end();
std::cmatch::const_iterator cit = mr.begin();
std::cmatch::value_type val = *cit;
std::cmatch::const_reference cref = val;
std::cmatch::reference ref = val;
maxsiz = maxsiz; // to quiet "unused" warnings
if (ref == cref)
ch = ch;
dif = dif;
return (0);
}
prefix: matched == true, value == x
whole match: 4 chars, value == caaa
suffix: matched == true, value == y
"c(a*)|(b)" matched "caaa"
"(a*)" matched "aaa"
"(b)" matched ""
submatch[0]: matched == true at position 1
4 chars, value == caaa
submatch[1]: matched == true at position 2
3 chars, value == aaa
submatch[2]: matched == false at position 6
0 chars, value ==
next submatch: matched == true
4 chars, value == caaa
next submatch: matched == true
3 chars, value == aaa
next submatch: matched == false
0 chars, value ==
empty == false
match_results::allocator_type
스토리지 관리를 위한 할당자의 형식입니다.
typedef Alloc allocator_type;
설명
typedef는 템플릿 인수 Alloc의 동의어입니다.
match_results::begin
부분 일치 시퀀스의 시작을 지정합니다.
const_iterator begin() const;
설명
멤버 함수는 시퀀스의 첫 번째 요소(또는 빈 시퀀스의 끝 바로 다음)를 가리키는 임의 액세스 반복기를 반환합니다.
match_results::char_type
요소의 형식입니다.
typedef typename iterator_traits<BidIt>::value_type char_type;
설명
typedef는 iterator_traits<BidIt>::value_type
형식의 동의어로, 검색된 문자 시퀀스의 요소 형식입니다.
match_results::const_iterator
부분 일치에 대한 상수 반복기 형식입니다.
typedef T0 const_iterator;
설명
typedef는 제어되는 시퀀스의 상수 임의 액세스 반복기로 사용될 수 있는 개체를 설명합니다.
match_results::const_reference
요소 const 참조의 형식입니다.
typedef const typename Alloc::const_reference const_reference;
설명
typedef는 제어되는 시퀀스의 요소에 대한 상수 참조로 사용될 수 있는 개체를 설명합니다.
match_results::d ifference_type
반복기 차이의 형식입니다.
typedef typename iterator_traits<BidIt>::difference_type difference_type;
설명
typedef는 iterator_traits<BidIt>::difference_type
형식의 동의어이며, 제어되는 시퀀스의 요소를 가리키는 두 반복기 사이의 차이를 나타낼 수 있는 개체에 대해 설명합니다.
match_results::empty
부분 일치가 없는지 테스트합니다.
bool empty() const;
설명
멤버 함수는 정규식 검색에 실패한 경우에만 true를 반환합니다.
match_results::end
부분 일치 시퀀스의 끝을 지정합니다.
const_iterator end() const;
설명
멤버 함수는 시퀀스 끝의 바로 다음을 가리키는 반복기를 반환합니다.
match_results::format
부분 일치의 서식을 지정합니다.
template <class OutIt>
OutIt format(OutIt out,
const string_type& fmt, match_flag_type flags = format_default) const;
string_type format(const string_type& fmt, match_flag_type flags = format_default) const;
매개 변수
OutIt
출력 반복기 형식입니다.
out
쓸 출력 스트림입니다.
fmt
서식 문자열입니다.
flags
서식 플래그입니다.
설명
각 멤버 함수는 fmt 형식의 컨트롤 아래에 서식 이 지정된 텍스트를 생성합니다. 첫 번째 멤버 함수는 인수 로 정의된 시퀀스에 서식이 지정된 텍스트를 쓰고 반환합니다. 두 번째 멤버 함수는 서식이 지정된 텍스트의 복사본을 포함하는 문자열 개체를 반환합니다.
서식 있는 텍스트를 생성하려면 서식 문자열의 리터럴 텍스트를 일반적으로 대상 시퀀스로 복사합니다. 서식 문자열의 각 이스케이프 시퀀스가 대표 텍스트로 대체됩니다. 복사 및 교체 정보는 함수에 전달된 서식 플래그에서 제어합니다.
match_results::get_allocator
저장된 할당자를 반환합니다.
allocator_type get_allocator() const;
설명
멤버 함수는 *this
에서 사용된 할당자 개체의 복사본을 반환하여 해당 sub_match
개체를 할당합니다.
match_results::iterator
부분 일치에 대한 반복기 형식입니다.
typedef const_iterator iterator;
설명
이 형식은 제어되는 시퀀스의 임의 액세스 반복기로 사용될 수 있는 개체를 설명합니다.
match_results::length
부분 일치의 길이를 반환합니다.
difference_type length(size_type sub = 0) const;
매개 변수
sub
부분 일치 항목의 인덱스입니다.
설명
멤버 함수는 (*this)[sub].length()
를 반환합니다.
match_results::match_results
개체를 생성합니다.
explicit match_results(const Alloc& alloc = Alloc());
match_results(const match_results& right);
매개 변수
alloc
저장할 할당자 개체입니다.
right
복사할 match_results 개체입니다.
설명
첫 번째 생성자는 부분 일치 항목을 보유하지 않는 match_results
개체를 구성합니다. 두 번째 생성자는 오른쪽 복사본인 match_results
개체를 생성합니다.
match_results::max_size
부분 일치의 최대 수를 가져옵니다.
size_type max_size() const;
설명
멤버 함수는 개체가 제어할 수 있는 가장 긴 시퀀스의 길이를 반환합니다.
match_results::operator=
match_results 개체를 복사합니다.
match_results& operator=(const match_results& right);
매개 변수
right
복사할 match_results 개체입니다.
설명
멤버 연산자는 제어되는 *this
시퀀스를 오른쪽으로 제어되는 시퀀스의 복사본으로 바꿉니다.
match_results::operator[]
하위 개체에 액세스합니다.
const_reference operator[](size_type n) const;
매개 변수
n
부분 일치 항목의 인덱스입니다.
설명
멤버 함수는 제어되는 시퀀스의 요소 n에 대한 참조를 반환하거나 캡처 그룹 n이 일치 항목의 일부가 아닌 경우 size() <= n
빈 sub_match
개체에 대한 참조를 반환합니다.
match_results::p osition
하위 그룹의 시작 오프셋을 가져옵니다.
difference_type position(size_type sub = 0) const;
매개 변수
sub
부분 일치 항목의 인덱스입니다.
설명
멤버 함수는 std::distance(prefix().first, (*this)[sub].first)
, 즉 대상 시퀀스의 첫 번째 문자부터 제어되는 시퀀스의 n
요소가 가리키는 부분 일치의 첫 번째 문자까지 거리를 반환합니다.
match_results::p refix
첫 번째 부분 일치 전의 시퀀스를 가져옵니다.
const_reference prefix() const;
설명
멤버 함수는 대상 시퀀스의 시작에서 시작되고 sub_match<BidIt>
에서 끝나는 문자 시퀀스 즉, 일치하는 하위 시퀀스 앞에 오는 텍스트를 가리키는 (*this)[0].first
형식의 개체에 대한 참조를 반환합니다.
match_results::reference
요소 참조의 형식입니다.
typedef const_reference reference;
설명
이 형식은 const_reference
형식의 동의어입니다.
match_results::size
부분 일치 수를 계산합니다.
size_type size() const;
설명
멤버 함수는 검색에 사용된 정규식에서 캡처 그룹 수보다 1이 큰 수를 반환하고, 검색되지 않은 경우 0을 반환합니다.
match_results::size_type
부분 일치 수의 형식입니다.
typedef typename Alloc::size_type size_type;
설명
이 형식은 Alloc::size_type
형식의 동의어입니다.
match_results::str
부분 일치 항목을 반환합니다.
string_type str(size_type sub = 0) const;
매개 변수
sub
부분 일치 항목의 인덱스입니다.
설명
멤버 함수는 string_type((*this)[sub])
를 반환합니다.
match_results::string_type
문자열의 형식입니다.
typedef basic_string<char_type> string_type;
설명
이 형식은 basic_string<char_type>
형식의 동의어입니다.
match_results::suffix
마지막 부분 일치 후 시퀀스를 가져옵니다.
const_reference suffix() const;
설명
멤버 함수는 sub_match<BidIt>
에서 시작되고 대상 시퀀스의 끝에서 끝나는 문자 시퀀스 즉, 일치하는 하위 시퀀스 뒤에 오는 텍스트를 가리키는 (*this)[size() - 1].second
형식의 개체에 대한 참조를 반환합니다.
match_results::swap
두 match_results 개체를 바꿉니다.
void swap(const match_results& right) throw();
매개 변수
right
바꾸려는 match_results 개체입니다.
설명
멤버 함수는 상수 시간에 적절한 내용과 내용을 *this
교환하며 예외를 throw하지 않습니다.
match_results::value_type
부분 일치의 형식입니다.
typedef sub_match<BidIt> value_type;
설명
typedef는 sub_match<BidIt>
형식의 동의어입니다.