C ++ STL中的match_results运算符[]

在本文中,我们将讨论C ++ STL中match_results运算符'[]'的工作,语法和示例。

什么是C ++ STL中的match_results?

std::match_results是一个类似于容器的特殊类,用于保存匹配的字符序列的集合。在此容器类中,正则表达式匹配操作可找到目标序列的匹配项。

什么是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