📜  C++ STL中的regex_iterator()函数

📅  最后修改于: 2021-05-30 04:30:45             🧑  作者: Mango

regex_iterator()是C++中BiDirectionalIterator类的函数。此方法返回一个迭代器类型,以迭代序列中同一正则表达式模式的不同匹配。

句法:

template<
    class BidirectionalIterator,
    class CharT = typename std::iterator_traits::value_type,
    class Traits = std::regex_traits > class regex_iterator

C++ 14语法

template  class regex_iterator;

C++ 11语法:

template  class regex_iterator;

参数:此方法接受以下参数:

  • BidirectionalIterator:在目标字符序列上进行迭代。
  • 图表:这是一个char类型。
  • 特质:这是正则表达式特质类型。

返回值:该方法返回具有结果序列的字符串对象。

以下示例说明了regex_iterator()方法:

例子:

#include 
#include 
#include 
#include 
using namespace std;
  
int main()
{
    const string
        strg
        = "Geeksforgeeks welcome geeks.";
  
    regex words_regex("[^\\s]+");
    auto
        words_begin
        = sregex_iterator(
            strg.begin(),
            strg.end(),
            words_regex);
  
    auto words_end = sregex_iterator();
  
    cout << "Trying to find words"
         << " using regex_iterator:\n\n";
  
    cout << "Number of words found: "
         << distance(words_begin, words_end);
  
    cout << "\n\nThe words are:\n";
    for (sregex_iterator k = words_begin;
         k != words_end;
         ++k) {
  
        smatch match = *k;
        string match_str = match.str();
  
        cout << match_str
             << endl;
    }
}
输出:
Trying to find words using regex_iterator:

Number of words found: 3

The words are:
Geeksforgeeks
welcome
geeks.
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”