এই আর্টিকেলে আমরা 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