MatchResult ইন্টারফেস
java.util.regex.MatchResult ইন্টারফেস ম্যাচ রেজাল্ট রিট্রিভ করার মেথডস প্রদান করে। Matcher.toMatchResult() কল করে ইমিউটেবল `MatchResult` অবজেক্ট পাওয়া যায়।
group() মেথড
group() বা `group(0)` — শেষ ম্যাচ করা পুরো সাবস্ট্রিং রিটার্ন করে।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchResultGroupExample {
public static void main(String[] args) {
String regex = "(.*)(\\d+)(.*)"; // ৩টি গ্রুপ
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("ম্যাচ পাওয়া গেছে");
}
// MatchResult অবজেক্ট পাওয়া
MatchResult res = matcher.toMatchResult();
// গ্রুপ ০ (পুরো ম্যাচ)
String matchedData = res.group();
System.out.println("ম্যাচ করা ডেটা: " + matchedData);
}
}
আউটপুট উদাহরণ
ইনপুট টেক্সট লিখুন: This is a sample Text, 123
ম্যাচ পাওয়া গেছে
ম্যাচ করা ডেটা: This is a sample Text, 123
MatchResult এর অন্যান্য útil মেথডস
| মেথড | ব্যাখ্যা |
|---|---|
group() | পুরো ম্যাচ (গ্রুপ ০) |
group(int n) | নির্দিষ্ট গ্রুপ নম্বরের ম্যাচ |
group(String name) | নেমড গ্রুপের ম্যাচ (Java 7+) |
start() | ম্যাচের শুরু ইনডেক্স |
start(int n) | গ্রুপ n-এর শুরু ইনডেক্স |
end() | ম্যাচের শেষ ইনডেক্স (exclusive) |
end(int n) | গ্রুপ n-এর শেষ ইনডেক্স |
groupCount() | ক্যাপচারিং গ্রুপের সংখ্যা |
কেন MatchResult ব্যবহার করবেন?
- ইমিউটেবলিটি: ম্যাচার স্টেট পরিবর্তন হলেও রেজাল্ট অপরিবর্তিত থাকে।
- পাসেবিলিটি: মেথড আর্গুমেন্ট হিসেবে পাস করা যায়।
- থ্রেড সেফটি: ইমিউটেবল অবজেক্ট থ্রেড-সেফ।
সারসংক্ষেপ
`MatchResult.group()` শেষ ম্যাচ করা পুরো স্ট্রিং রিটার্ন করে। `matcher.toMatchResult()` দিয়ে ইমিউটেবল রেজাল্ট অবজেক্ট পাওয়া যায়, যা আরও নিরাপদে ব্যবহার ও পাস করা যায়। গ্রুপ-স্পেসিফিক ডেটার জন্য `group(int)` বা `group(String)` ব্যবহার করুন।