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 次瀏覽

開啟您的 職業生涯

獲得課程結業認證

立即開始
廣告
© . All rights reserved.