regex_iterator
描述 (Description)
它是一种迭代器类型,用于迭代序列中相同正则表达式模式的不同匹配。
声明 (Declaration)
以下是std :: regex_iterator的声明。
emplate <class BidirectionalIterator,
class charT=typename iterator_traits<BidirectionalIterator>::value_type,
class traits=regex_traits<charT> > class regex_iterator;
C++11
emplate <class BidirectionalIterator,
class charT=typename iterator_traits<BidirectionalIterator>::value_type,
class traits=regex_traits<charT> > class regex_iterator;
C++14
emplate <class BidirectionalIterator,
class charT=typename iterator_traits<BidirectionalIterator>::value_type,
class traits=regex_traits<charT> > class regex_iterator;
参数 (Parameters)
BidirectionalIterator - 它是一种双向迭代器类型,它迭代目标字符序列。
charT - 它是一种char类型。
traits - 它是一种正则表达式特征类型。
返回值 (Return Value)
它返回一个带有结果序列的字符串对象。
异常 (Exceptions)
No-noexcept - 这个成员函数永远不会抛出异常。
例子 (Example)
在下面的示例中为std :: regex_iterator。
#include <regex>
#include <iterator>
#include <iostream>
#include <string>
int main() {
const std::string s = "iowiki.com india pvt ltd.";
std::regex words_regex("[^\\s]+");
auto words_begin =
std::sregex_iterator(s.begin(), s.end(), words_regex);
auto words_end = std::sregex_iterator();
std::cout << "Found "
<< std::distance(words_begin, words_end)
<< " words:\n";
for (std::sregex_iterator i = words_begin; i != words_end; ++i) {
std::smatch match = *i;
std::string match_str = match.str();
std::cout << match_str << '\n';
}
}
输出应该是这样的 -
Found 4 words:
iowiki.com
india
pvt
ltd.