当前位置: 首页>>代码示例>>用法及示例精选>>正文


C++ match_results begin()、end()用法及代码示例

  • match_results::cbegin()是C++ STL中的Inbulit函数,该函数返回一个迭代器,该迭代器指向match_results对象中的第一个匹配项。

    用法:

    smatch_name.begin()

    参数:该函数不接受任何参数。

    返回值:此函数返回指向match_results对象中第一个匹配项的迭代器。 match_results对象中包含的匹配项始终是恒定的。


    注意:第一个元素始终包含整个正则表达式匹配项,而其他元素则包含特定的捕获组。

    以下示例程序旨在说明上述功能:

    // C++ program to illustrate the  
    // match_results begin() function  
    #include <bits/stdc++.h> 
    using namespace std; 
    int main() 
    { 
        string sp("geeksforgeeks"); 
        regex re("(geeks)(.*)"); 
      
        smatch match; 
      
        // we can use member function on match 
        // to extract the matched pattern. 
        std::regex_match(sp, match, re); 
      
        // The size() member function indicates the 
        // number of capturing groups plus one for the overall match 
        // match size = Number of capturing group + 1 
        // (.*) which "forgeeks" ). 
        cout << "Match size = " << match.size() << endl; 
      
        cout << "matches:" << endl; 
        for (smatch::iterator it = match.begin(); it != match.end(); ++it) 
            cout << *it << endl; 
        return 0; 
    }
    输出:
    Match size = 3
    matches:
    geeksforgeeks
    geeks
    forgeeks
    
  • match_results::end()是C++ STL中的Inbulit函数,它返回一个迭代器,该迭代器指向match_results对象中的past-the-end匹配项。

    用法:

    smatch_name.end()

    参数:该函数不接受任何参数。

    返回值:此函数返回指向match_results对象中的past-the-end匹配项的迭代器。 match_results对象中包含的匹配项始终是恒定的。

    注意:第一个元素始终包含整个正则表达式匹配项,而其他元素则包含特定的捕获组。

    以下示例程序旨在说明上述功能

    // C++ program to illustrate the  
    // match_results end() function  
    #include <bits/stdc++.h> 
    using namespace std; 
    int main() 
    { 
        string sp("matchresult"); 
        regex re("(match)(.*)"); 
      
        smatch match; 
      
        // we can use member function on match 
        // to extract the matched pattern. 
        std::regex_match(sp, match, re); 
      
        // The size() member function indicates the 
        // number of capturing groups plus one for the overall match 
        // match size = Number of capturing group + 1 
        // (.*) which "results" ). 
        cout << "Match size = " << match.size() << endl; 
      
        cout << "matches:" << endl; 
        for (smatch::iterator it = match.begin(); it != match.end(); ++it) 
            cout << *it << endl; 
        return 0; 
    }
    输出:
    Match size = 3
    matches:
    matchresult
    match
    result
    


相关用法

注:本文由纯净天空筛选整理自Harsha_Mogali大神的英文原创作品 match_results begin() and end() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。