在本文中,我们将讨论C ++ STL中match_results运算符'[]'的工作,语法和示例。
std::match_results是一个类似于容器的特殊类,用于保存匹配的字符序列的集合。在此容器类中,正则表达式匹配操作可找到目标序列的匹配项。
Match_results运算符[]是一个参考运算符,用于直接引用match_results的第i个位置。运算符[]返回关联对象的第i个匹配位置。当我们必须通过从零开始的匹配位置直接访问元素时,该运算符会派上用场。
match_results1[int i];
此运算符采用整数类型的1参数,即我们要访问的元素的参数。
此函数将引用返回到匹配结果的第i个位置。
Input: string str = "nhooo"; regex R("(Tutorials)(.*)"); smatch Mat; regex_match(str, Mat, R); Mat[0]; Output: nhooo
#include <bits/stdc++.h> using namespace std; int main() { string str = "nhooo"; regex R("(Tutorials)(.*)"); smatch Mat; regex_match(str, Mat, R); for (int i = 0; i < Mat.size(); i++) { cout<<"Match is : " << Mat[i]<< endl; } return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Match is : nhooo Match is : Tutorials Match is : Point
#include <bits/stdc++.h> using namespace std; int main() { string str = "nhooo.com"; regex R("(Tutorials)(Point)(.*)"); smatch Mat; regex_match(str, Mat, R); int len = 0; string S; for(int i = 1; i < Mat.size(); i++) { if (Mat.length(i) > len) { str = Mat[i]; len = Mat.length(i); } } cout<<"Matching length is : " << len<< endl; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Matching length is : 0