regex_iterator 構造体テンプレート
-
template<typename BidiIter>
struct regex_iterator
概要
// ヘッダ:<boost/xpressive/regex_iterator.hpp
> template<typename BidiIter> structregex_iterator
{ // 型 typedefbasic_regex
< BidiIter > regex_type; typedefmatch_results
< BidiIter > value_type; typedef iterator_difference< BidiIter >::type difference_type; typedef value_type const * pointer; typedef value_type const & reference; typedef std::forward_iterator_tag iterator_category; // 構築、コピー、解体regex_iterator
();regex_iterator
(BidiIter, BidiIter,basic_regex
< BidiIter > const &, regex_constants::match_flag_type = regex_constants::match_default); template<typename LetExpr>regex_iterator
(BidiIter, BidiIter,basic_regex
< BidiIter > const &,unspecified
, regex_constants::match_flag_type = regex_constants::match_default);regex_iterator
(regex_iterator
< BidiIter > const &);regex_iterator
< BidiIter >&operator=
(regex_iterator
< BidiIter > const &); // 公開メンバ関数 value_type const &operator*
() const; value_type const *operator->
() const;regex_iterator
< BidiIter > &operator++
();regex_iterator
< BidiIter >operator++
(int);
説明
regex_iterator
構築、コピー、解体の公開演算
-
regex_iterator()
-
regex_iterator(BidiIter begin, BidiIter end, basic_regex<BidiIter> const &rex, regex_constants::match_flag_type flags = regex_constants::match_default)
-
template<typename LetExpr>
regex_iterator(BidiIter begin, BidiIter end, basic_regex<BidiIter> const &rex, unspecified args, regex_constants::match_flag_type flags = regex_constants::match_default)
-
regex_iterator(regex_iterator<BidiIter> const &that)
-
regex_iterator<BidiIter> &operator=(regex_iterator<BidiIter> const &that)
regex_iterator
公開メンバ関数
-
value_type const &operator*() const
-
value_type const *operator->() const
-
regex_iterator<BidiIter> &operator++()
what.prefix().first != what[0].second かつ
match_prev_avail
要素がフラグに設定されていなければ設定する。その上で regex_search(what[0].second, end, what, *pre, flags) を呼び出したのと同様に振る舞う。ただし以下の点については振る舞いが異なる:前回見つかったマッチがゼロ幅だった(what[0].length() == 0)場合は開始位置が what[0].second である非ゼロ幅のマッチを探索し、それが失敗かつ what[0].second != suffix().second である場合に限り開始位置が what[0].second + 1 であるマッチ(これもゼロ幅である可能性がある)を探索する。それ以上マッチが見つからなければ、*this をシーケンスの終端を指すイテレータと等値に設定する。- 事後条件
(*this)->size() == pre->mark_count() + 1
- 事後条件
(*this)->empty() == false
- 事後条件
(*this)->prefix().first == i。
i
は(前回見つかったマッチの終端位置を指すイテレータ)- 事後条件
(*this)->prefix().last == (**this)[0].first
- 事後条件
(*this)->prefix().matched == (*this)->prefix().first != (*this)->prefix().second
- 事後条件
(*this)->suffix().first == (**this)[0].second
- 事後条件
(*this)->suffix().last == end
- 事後条件
(*this)->suffix().matched == (*this)->suffix().first != (*this)->suffix().second
- 事後条件
(**this)[0].first == i。
i
はこのマッチの開始イテレータ- 事後条件
(**this)[0].second == i。
i
はこのマッチの終端イテレータ- 事後条件
完全マッチが見つかった場合は (**this)[0].matched == true 、(
match_partial
フラグを設定して見つかった)部分マッチの場合は (**this)[0].matched == true。- 事後条件
n < (*this)->size() である全ての整数
n
について (**this)[n].first == v。v
はn
番目の部分式にマッチしたシーケンスの先頭。n
番目の部分式がマッチに関与しなかった場合はend
。- 事後条件
n < (*this)->size() である全ての整数
n
について (**this)[n].second == v。v
はn
番目の部分式にマッチしたシーケンスの終端。n
番目の部分式がマッチに関与しなかった場合はend
。- 事後条件
n < (*this)->size() である全ての整数
n
について (**this)[n].matched == b。b
はn
番目の部分式がマッチに関与した場合はtrue
、それ以外の場合はfalse
。- 事後条件
(*this)->position() == d。
d
は走査対象シーケンスの先頭からこのマッチの先頭までの距離
-
regex_iterator<BidiIter> operator++(int)