在本文中,我们将讨论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