C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- std::sub_match
- std::match_results
- std::basic_regex
- std::regex_search
- std::regex_replace
- std::regex_iterator
- std::regex_match
- std::regex_iterator<BidirIt,CharT,Traits>::operator++, operator++(int)
- std::regex_token_iterator
- std::regex_error
- std::regex_traits
- std::regex_constants::syntax_option_type
- std::regex_constants::match_flag_type
- std::regex_constants::error_type
- 改 ECMAScript 正则表达式文法
- 注释
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >正则表达式库 >std::regex_iterator > std::regex_iterator<BidirIt,CharT,Traits>::operator++, operator++(int)
std::regex_iterator<BidirIt,CharT,Traits>::operator++, operator++(int)
regex_iterator& operator++(); |
(C++11 起) | |
regex_iterator operator++(int); |
(C++11 起) | |
推进迭代器到下个匹配。
本节未完成 原因:更好地解释 |
首先以 match[0].second 的值构造 BidirIt
类型局部变量。
若迭代器保有零长匹配且 start == end ,则设置 *this 为序列尾迭代器,函数返回。
否则,若迭代器保有零长匹配,则运算符调用以下内容:
regex_search(start, end, match, *pregex,
flags | regex_constants::match_not_null |
regex_constants::match_continuous);
若调用返回 true ,则函数返回。
否则运算符自增 start
并持续,如同最近匹配不是零长匹配。
若最近匹配不是零长匹配,则运算符设置 flags
为 flags | 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()) 中满足 match[i].matched 为 true 的的每个 i , match[i].position() 将返回 distance(begin, match[i].first) 。
这表明 match[i].position() 给出自目标序列起始的偏移,它通常与从传递给 regex_search 调用中的序列偏移不同。
实现如何进行这些调整是未指定的。这表明编译器可以调用实现限定的搜索函数,该情况下将不调用用户定义的 regex_search 特化。
若迭代器是序列尾迭代器则行为未定义。
参数
(无)