다음을 통해 공유


regex_iterator 클래스

일치 항목에 대한 반복기 클래스입니다.

구문

template<class BidIt,
   class Elem = typename std::iterator_traits<BidIt>::value_type,
   class RxTraits = regex_traits<Elem> >
class regex_iterator

매개 변수

BidIt
부분 일치에 대한 반복기 형식입니다.

Elem
일치 항목을 찾을 요소의 형식입니다.

RXtraits
요소에 대한 특성 클래스입니다.

설명

클래스 템플릿은 상수 정방향 반복기 개체를 설명합니다. 반복기 범위 match_results<BidIt> 에 정의된 문자 시퀀스에 정규식 개체 *pregex 를 반복적으로 적용하여 [begin, end)형식의 개체를 추출합니다.

생성자

생성자 Description
regex_iterator 반복기를 생성합니다.

Typedef

형식 이름 설명
difference_type 반복기 차이의 형식입니다.
iterator_category 반복기 범주의 형식입니다.
pointer 일치 항목에 대한 포인터의 형식입니다.
reference 일치 항목에 대한 참조의 형식입니다.
regex_type 일치 항목을 찾을 정규식의 형식입니다.
value_type 일치 항목의 형식입니다.

연산자

연산자 설명
operator!= 반복기가 같지 않은지 비교합니다.
operator* 지정된 일치 항목에 액세스합니다.
operator++ 반복기를 증가시킵니다.
operator= 반복기가 같은지 비교합니다.
operator-> 지정된 일치 항목에 액세스합니다.

요구 사항

헤더:<regex>

네임스페이스: std

예제

정규식에 대한 예제는 다음 문서를 참조하세요.

// std__regex__regex_iterator.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>

typedef std::regex_iterator<const char *> Myiter;
int main()
    {
    const char *pat = "axayaz";
    Myiter::regex_type rx("a");
    Myiter next(pat, pat + strlen(pat), rx);
    Myiter end;

    for (; next != end; ++next)
        std::cout << "match == " << next->str() << std::endl;

// other members
    Myiter it1(pat, pat + strlen(pat), rx);
    Myiter it2(it1);
    next = it1;

    Myiter::iterator_category cat = std::forward_iterator_tag();
    Myiter::difference_type dif = -3;
    Myiter::value_type mr = *it1;
    Myiter::reference ref = mr;
    Myiter::pointer ptr = &ref;

    dif = dif; // to quiet "unused" warnings
    ptr = ptr;

    return (0);
    }
match == a
match == a
match == a

regex_iterator::d ifference_type

반복기 차이의 형식입니다.

typedef std::ptrdiff_t difference_type;

설명

이 형식은 std::ptrdiff_t의 동의어입니다.

regex_iterator::iterator_category

반복기 범주의 형식입니다.

typedef std::forward_iterator_tag iterator_category;

설명

이 형식은 std::forward_iterator_tag의 동의어입니다.

regex_iterator::operator!=

반복기가 같지 않은지 비교합니다.

bool operator!=(const regex_iterator& right);

매개 변수

right
비교할 반복기입니다.

설명

멤버 함수는 !(*this == right)를 반환합니다.

regex_iterator::operator*

지정된 일치 항목에 액세스합니다.

const match_results<BidIt>& operator*();

설명

이 멤버 함수는 저장된 값 match를 반환합니다.

regex_iterator::operator++

반복기를 증가시킵니다.

regex_iterator& operator++();
regex_iterator& operator++(int);

설명

현재 일치 항목에 문자가 없으면 첫 번째 연산자가 호출 regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null)합니다. 그렇지 않으면 저장된 값 begin 이 현재 일치 후 첫 번째 문자를 가리키도록 이동한 다음 호출됩니다 regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). 두 경우 모두 검색에 실패하면 연산자가 개체를 시퀀스의 끝 반복기로 설정합니다. 연산자가 개체를 반환합니다.

두 번째 연산자는 개체의 복사본을 만들고 개체를 증가시킨 다음 복사본을 반환합니다.

regex_iterator::operator=

반복기가 같은지 비교합니다.

bool operator==(const regex_iterator& right);

매개 변수

right
비교할 반복기입니다.

설명

멤버 함수는 시퀀스 끝 반복기이거나 시퀀스 끝 반복기 및 begin == right.begin, end == right.endpregex == right.pregex, 및 flags == right.flags둘 다 없는 경우 true *this 를 반환합니다. 그렇지 않으면 false를 반환합니다.

regex_iterator::operator->

지정된 일치 항목에 액세스합니다.

const match_results<BidIt> * operator->();

설명

멤버 함수는 저장된 값 match의 주소를 반환합니다.

regex_iterator::p오인터

일치 항목에 대한 포인터의 형식입니다.

typedef match_results<BidIt> *pointer;

설명

이 형식은 match_results<BidIt>*의 동의어로, 여기서 BidIt 는 템플릿 매개 변수입니다.

regex_iterator::reference

일치 항목에 대한 참조의 형식입니다.

typedef match_results<BidIt>& reference;

설명

이 형식은 match_results<BidIt>&의 동의어로, 여기서 BidIt 는 템플릿 매개 변수입니다.

regex_iterator::regex_iterator

반복기를 생성합니다.

regex_iterator();

regex_iterator(BidIt first,
    BidIt last,
    const regex_type& re,
    regex_constants::match_flag_type f = regex_constants::match_default);

매개 변수

first
일치하는 시퀀스의 시작입니다.

last
일치하는 시퀀스의 끝입니다.

다시
일치 항목에 대한 정규식입니다.

f
일치에 대한 플래그입니다.

설명

첫 번째 생성자는 시퀀스의 끝 반복기를 생성합니다. 두 번째 생성자는 저장된 값을 begin첫 번째 값, 마지막으로 저장된 값, 저장된 값 end&re저장된 값을 pregexflags f초기화합니다. 그런 다음 regex_search(begin, end, match, *pregex, flags)를 호출합니다. 검색에 실패하면 생성자는 개체를 시퀀스의 끝 반복기로 설정합니다.

regex_iterator::regex_type

일치 항목을 찾을 정규식의 형식입니다.

typedef basic_regex<Elem, RXtraits> regex_type;

설명

typedef는 basic_regex<Elem, RXtraits>의 동의어입니다.

regex_iterator::value_type

일치 항목의 형식입니다.

typedef match_results<BidIt> value_type;

설명

이 형식은 match_results<BidIt>의 동의어로, 여기서 BidIt 는 템플릿 매개 변수입니다.

참고 항목

<regex>
regex_constants 클래스
regex_error 클래스
<regex> 함수
regex_iterator 클래스
<regex 연산자>
regex_token_iterator 클래스
regex_traits 클래스
<regex> typedefs