Computer >> Máy Tính >  >> Lập trình >> C ++

match_results length () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm match_results ::length () trong C ++ STL.

match_results trong C ++ STL là gì?

std ::match_results là một lớp giống như vùng chứa chuyên biệt được sử dụng để lưu trữ tập hợp các chuỗi ký tự được so khớp. Trong lớp vùng chứa này, thao tác so khớp regex tìm các kết quả phù hợp của chuỗi đích.

match_results ::length () là gì?

Hàm match_results ::length () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . length () được sử dụng để kiểm tra độ dài của khớp thứ n trong đối tượng match_results được liên kết với nó. length () chấp nhận một tham số là số đối sánh phải nhỏ hơn match_results ::size (), để kiểm tra độ dài của đối sánh thứ n.

Cú pháp

smatch_name.length(unsigned int num);

Tham số

Hàm này chấp nhận một tham số là số đối sánh phải thấp hơn kích thước của vùng chứa. Đối sánh số 0 đại diện cho toàn bộ biểu thức đối sánh.

Giá trị trả về

Hàm này trả về giá trị số nguyên không dấu của số lượng kết quả phù hợp trong đối tượng

Ví dụ

Input: std::smatch;
   smatch.length(0);
Output: 0

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Match is : TutorialsPoint
Match is : Tutorials
Match is : Point

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   string sr = "Tutorials Point";
   regex Re("(Tutorials)(.*)");
   smatch Mat;
   regex_match(sr, Mat, Re);
   int len = 0;
   string str;
   for (int i = 1; i < Mat.size(); i++) {
      if (Mat.length(i) > len) {
         str = Mat[i];
         len = Mat.length(i);
      }
   }
   cout<<"Match length is of: " << len;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Match length is of: 9