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 đề
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