C++ STL 中 match_results 的 begin() 和 end() 函数
本文将讨论 C++ STL 中 match_results::begin() 和 match_results::end() 函数的工作原理、语法和示例。
什么是 C++ STL 中的 match_results?
std::match_results 是一个专门的类似容器的类,用于保存匹配到的字符序列的集合。在这个容器类中,正则表达式匹配操作查找目标序列的匹配项。
什么是 match_results::begin()?
match_results::begin() 函数是 C++ STL 中的一个内置函数,它在 <regex> 头文件中定义。此函数返回一个迭代器,该迭代器指向 match_results 对象中的第一个元素。match_results::begin() 和 match_results::end() 结合使用以提供 match_results 容器的范围。
语法
match_name.begin();
参数
此函数不接受任何参数。
返回值
此函数返回一个迭代器,该迭代器指向 match_results 容器的第一个元素。
示例
Input: std::string str("TutorialsPoint"); std::smatch Mat; std::regex re("(Tutorials)(.*)"); std::regex_match ( str, Mat, re ); Mat.begin(); Output: T
示例
#include <iostream> #include <string> #include <regex> int main () { std::string str("Tutorials"); std::smatch Mat; std::regex re("(Tuto)(.*)"); std::regex_match ( str, Mat, re ); std::cout<<"Match Found: " << std::endl; for (std::smatch::iterator i = Mat.begin(); i!= Mat.end(); ++i) { std::cout << *i << std::endl; } return 0; }
输出
如果我们运行以上代码,它将生成以下输出:
Match Found Tutorials Tuto rials
什么是 match_results::end()?
match_results::end() 函数是 C++ STL 中的一个内置函数,它在 <regex> 头文件中定义。此函数返回一个迭代器,该迭代器指向 match_results 对象中最后一个元素的下一个位置。match_results::begin() 和 match_results::end() 结合使用以提供 match_results 容器的范围。
语法
smatch_name.begin();
参数
此函数不接受任何参数。
返回值
此函数返回一个迭代器,该迭代器指向 match_results 容器末尾的下一个元素。
Input: std::string str("TutorialsPoint"); std::smatch Mat; std::regex re("(Tutorials)(.*)"); std::regex_match ( str, Mat, re ); Mat.end(); Output: m //Random value which is past to the end of the container.
示例
#include <iostream> #include <string> #include <regex> int main () { std::string str("Tutorials"); std::smatch Mat; std::regex re("(Tuto)(.*)"); std::regex_match ( str, Mat, re ); std::cout<<"Match Found: " << std::endl; for (std::smatch::iterator i = Mat.begin(); i!= Mat.end(); ++i) { std::cout << *i << std::endl; } return 0; }
输出
如果我们运行以上代码,它将生成以下输出:
Match Found Tutorials Tuto rials
广告