當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。