match_results operator[] 在 C++ STL 中


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

什么是 C++ STL 中的 match_results?

std::match_results 是一个专门的类容器,用于保存已匹配的一系列字符序列。在此容器类中,正则表达式匹配操作可以找到目标序列的匹配项。

什么是 match_results 运算符“[]”

Match_results 运算符[] 是一个引用运算符,用于直接引用 match_results 的第 i 个位置。运算符 [] 返回所关联对象的第 i 个匹配位置。当我们必须通过从零开始的匹配位置直接访问元素时,此运算符会非常有用。

语法

match_results1[int i];

参数

此运算符采用一个整数类型的参数,即我们要访问的元素。

返回值

此函数返回对匹配结果第 i 位置的引用。

示例

Input: string str = "TutorialsPoint";
   regex R("(Tutorials)(.*)");
   smatch Mat;
   regex_match(str, Mat, R);
   Mat[0];
Output: TutorialsPoint

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   string str = "TutorialsPoint";
   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 : TutorialsPoint
Match is : Tutorials
Match is : Point

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   string str = "Tutorials Point";
   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

更新于: 23-3-2020

215 次浏览

开启您的 职业生涯

获得课程结业认证

立即开始
广告