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.end
pregex == 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
저장된 값을 pregex
flags
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