MatchResult.end(int group) মেথড
end(int group) নির্দিষ্ট গ্রুপ নম্বরের ম্যাচের শেষ ইনডেক্স (exclusive) রিটার্ন করে। অর্থাৎ, ম্যাচ করা ক্যারেক্টারের পরের পজিশন।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchResultEndGroupExample {
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();
// গ্রুপ ১ (প্রথম ক্যাপচারিং গ্রুপ) এর শেষ ইনডেক্স
int end = res.end(1);
System.out.println("গ্রুপ ১ এর শেষ ইনডেক্স (exclusive): " + end);
}
}
আউটপুট উদাহরণ
ইনপুট টেক্সট লিখুন: This is a sample Text, 123
ম্যাচ পাওয়া গেছে
গ্রুপ ১ এর শেষ ইনডেক্স (exclusive): 25
ব্যাখ্যা
ইনপুট: `"This is a sample Text, 123"` (লেন্থ ২৮, ইনডেক্স ০-২৭)
- গ্রুপ ১: `(.*)` -> লালচীভাবে যতটুকু সম্ভব নেয়, কিন্তু গ্রুপ ২ (`\d+`)-এর জন্য কমপক্ষে ১ ডিজিট ছাড়িয়ে দেয়।
- গ্রুপ ১ ম্যাচ: `"This is a sample Text, 12"` (ইনডেক্স ০-২৪)
- `end(1)` = ২৫ (এক্সক্লুসিভ এন্ড)}\).
গ্রুপ ইনডেক্স রেফারেন্স
| গ্রুপ | প্যাটার্ন | ম্যাচ করা টেক্সট | start() | end() |
|---|---|---|---|---|
| ০ | पुरো প্যাটার্ন | This is a sample Text, 123 | ০ | ২৮ |
| ১ | (.*) | This is a sample Text, 12 | ০ | ২৫ |
| ২ | (\\d+) | 3 | ২৫ | ২৬ |
| ৩ | (.*) | (খালি) | ২৬ | ২৬ |
সারসংক্ষেপ
`MatchResult.end(int group)` নির্দিষ্ট ক্যাপচারিং গ্রুপের ম্যাচের শেষ পজিশন (exclusive) দেয়। এটি টেক্সট প্রসেসিং, হাইলাইটিং, পার্সিং-এ গ্রুপ-লেভেল পজিশন জানতে সাহায্য করে। মনে রাখুন: এন্ড ইনডেক্স এক্সক্লুসিভ, অর্থাৎ `substring(start, end)` দিয়ে সঠিক সাবস্ট্রিং পাওয়া যায়।