MatchResult.group(int group) মেথড
group(int group) নির্দিষ্ট গ্রুপ নম্বরের ম্যাচ করা সাবস্ট্রিং রিটার্ন করে। গ্রুপ ০ = পুরো ম্যাচ, গ্রুপ ১, ২, ৩... = ক্যাপচারিং গ্রুপস।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchResultGroupIntExample {
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 res = matcher.toMatchResult();
// গ্রুপ ২ (ডিজিট গ্রুপ) এর কন্টেন্ট
String matchedData = res.group(2);
System.out.println("গ্রুপ ২ (ডিজিট): " + matchedData);
}
}
আউটপুট উদাহরণ
ইনপুট টেক্সট লিখুন: This is a sample Text, 123
ম্যাচ পাওয়া গেছে
গ্রুপ ২ (ডিজিট): 3
ব্যাখ্যা
ইনপুট: `"This is a sample Text, 123"`
- রেজেক্স: `(.*)(\\d+)(.*)`
- গ্রুপ ১: `(.*)` লালচী -> `"This is a sample Text, 12"`
- গ্রুপ ২: `(\\d+)` -> `"3"` (শেষ ডিজিট, কারণ গ্রুপ ১ লালচী)
- গ্রুপ ৩: `(.*)` -> `""` (খালি)
গ্রুপ নম্বরিং রেফারেন্স
| গ্রুপ নম্বর | প্যাটার্ন | ব্যাখ্যা |
|---|---|---|
| 0 | পুরো প্যাটার্ন | সম্পূর্ণ ম্যাচ |
| 1 | প্রথম `(...`) | প্রথম ক্যাপচারিং গ্রুপ |
| 2 | দ্বিতীয় `(...`) | দ্বিতীয় ক্যাপচারিং গ্রুপ |
| n | n-তম `(...`) | n-তম ক্যাপচারিং গ্রুপ |
নেমড গ্রুপ অ্যাক্সেস (Java 7+)
String regex = "(?<digits>\\d+)";
Matcher matcher = Pattern.compile(regex).matcher(input);
if (matcher.find()) {
String digits = matcher.group("digits"); // নাম দিয়ে অ্যাক্সেস
// বা MatchResult দিয়ে
MatchResult res = matcher.toMatchResult();
String digits2 = res.group("digits");
}
সারসংক্ষেপ
`MatchResult.group(int group)` নির্দিষ্ট ক্যাপচারিং গ্রুপের ম্যাচ করা টেক্সট রিটার্ন করে। `Matcher.toMatchResult()` দিয়ে ইমিউটেবল `MatchResult` পাওয়া যায়। গ্রুপ নম্বরিং বাম প্যারেনথেসিসের ক্রমে। নেমড গ্রুপ ব্যবহার করলে কোড আরও পঠনীয় হয়।