在线文档教程
C++
规律表达 | Regular expressions

std::regex_iterator::operators (int)

STD::regex[医]迭代器::运算符++,运算符++%28 int%29

regex_iterator& operator++((since C++11)
regex_iterator operator++(int(since C++11)

在下一次匹配中推进迭代器。

首先,类型的局部变量BidirIt构造的值为match[0].second...

如果迭代器保持零长度匹配,并且start == end,,,*this设置为序列结束迭代器,则函数返回。

否则,如果迭代器保持零长度匹配,则运算符调用以下内容:

regex_search(start, end, match, *pregex, flags | regex_constants::match_not_null | regex_constants::match_continuous

如果调用返回true函数返回。

否则,运算符将递增。start并且继续下去,好像最近的比赛不是零长度的比赛。

如果最近的匹配不是零长度匹配,则运算符将flagsflags | regex_constants::match_prev_avail并调用以下内容:

regex_search(start, end, match, *pregex, flags

如果调用返回false,迭代器集*this对于序列结束迭代器,函数返回.

在所有情况下regex_search回报true,,,match.prefix().first的值等于match[0].second对于每个指数在范围内[0,match.size()%29对此match[i].matchedtrue,,,match[i].position()会回来distance(begin, match[i].first)...

这意味着match[i].position()从目标序列的开头给出偏移量,这通常与调用中传递的序列的偏移量不相同。regex_search...

未具体说明实现是如何进行这些调整的。这意味着编译器可以调用特定于实现的搜索函数,在这种情况下,用户定义的专门化的regex_search不会被召唤。

如果迭代器是序列结束迭代器,则行为是未定义的。

参数

%280%29

返回值

1%29*this

2%29迭代器的前一个值。

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/regex/regex[医]迭代器/算子[医]阿瑞斯