C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配与 Regex 迭代器类型
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配与 Regex 迭代器类型相关的知识,希望对你有一定的参考价值。
1. regex迭代器是一种迭代器适配器,被绑定到一个输入序列和一个对象上
eg. 下表操作也适用于cregex_iterator、wsregex_iterator和wcregex_iterator
sregex_iterator操作 | 解释 |
---|---|
sregex_iterator it(b, e, r); | 一个sregex_iterator,遍历迭代器b和e表示的string。它调用sregex_search(b, e, r)将it定位到输入中第一个匹配的位置 |
sregex_iterator end; | sregex_iterator的尾后迭代器 |
*it or it-> | 根据最后一个调用regex_search的结果,返回一个smatch对象的引用或一个指向smatch对象的指针 |
++it or it++ | 从输入序列当前匹配位置开始调用regex_search。前置版本返回递增后迭代器;后置版本返回旧值 |
it1 == it2 or it1 != it2 | 如果两个sregex_iterator都是尾后迭代器,则它们相等;两个非尾后迭代器是从相同的输入序列和regex对象构造,则它们相等。 |
// 查找前一个字符不是c的字符串ei
string pattern("[^c]ei");
// 我们想要包含pattern的单词的全部内容
pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*";
regex r(pattern, regex::icase); // 在进行匹配时将忽略大小写
// 它将反复调用regex_search来寻找文件中的所有匹配
for (sregex_iterator it(file.begin(), file.end(), r), end_it; it != end_it; ++it)
cout << it->str() << endl; // 匹配的单词
以上是关于C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配与 Regex 迭代器类型的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值