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à ví dụ của toán tử match_results ‘[]’ 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.
Toán tử match_results ‘[]’
là gìToán tử match_results [] là một toán tử tham chiếu được sử dụng để tham chiếu trực tiếp đến vị trí thứ i của một match_results. Toán tử [] trả về vị trí khớp thứ i của đối tượng được liên kết. Toán tử này rất hữu ích khi chúng ta phải truy cập trực tiếp vào phần tử theo vị trí khớp của nó bắt đầu từ số không.
Cú pháp
match_results1[int i];
Tham số
Toán tử này nhận 1 tham số kiểu tích phân tức là của phần tử chúng ta muốn truy cập.
Giá trị trả về
Hàm này trả về tham chiếu đến vị trí thứ i của kết quả đối sánh.
Ví dụ
Input: string str = "TutorialsPoint"; regex R("(Tutorials)(.*)"); smatch Mat; regex_match(str, Mat, R); Mat[0]; Output: TutorialsPoint
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 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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Matching length is : 0