- 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
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对象中的过去结束匹配。
句法:
smatch_name.end()
参数:该函数不接受任何参数。
返回值:该函数返回一个迭代器,该迭代器指向match_results对象中的过去结束匹配。 match_results对象中包含的匹配项始终是恒定的。
注意:第一个元素始终包含整个正则表达式匹配项,而其他元素则包含特定的捕获组。
下面的程序说明了上面的函数
// C++ program to illustrate the // match_results end() function #include
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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。