MatchResult.groupCount() মেথড
MatchResult.groupCount() বর্তমান রেজেক্স প্যাটার্নে কতটি ক্যাপচারিং গ্রুপ আছে তা রিটার্ন করে। গ্রুপ ০ (পুরো ম্যাচ) গণনায় থাকে না।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchResultGroupCountExample {
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 count = res.groupCount();
System.out.println("গ্রুপ সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ
ইনপুট টেক্সট লিখুন: This is a sample Text, 123
ম্যাচ পাওয়া গেছে
গ্রুপ সংখ্যা: 3
Matcher.groupCount() vs MatchResult.groupCount()
matcher.groupCount()— মিউটেবল ম্যাচারের করেন্ট প্যাটার্নের গ্রুপ কাউন্ট।matcher.toMatchResult().groupCount()— ইমিউটেবল স্ন্যাপশটের গ্রুপ কাউন্ট (একই মান)।
গ্রুপ কাউন্টকে প্রভাবিত করে না
- নন-ক্যাপচারিং গ্রুপ `(?:...)`
- লুকআরাউন্ড `(?=...)`, `(?!...)`, `(?<=...)`, `(?
- অটোমিক গ্রুপ `(?>...)`
সারসংক্ষেপ
`groupCount()` রেজেক্স প্যাটার্নে কতটি ক্যাপচারিং গ্রুপ আছে তা জানার দ্রুত উপায়। ডাইনামিক রেজেক্স প্রসেসিং, জেনেরিক পার্সার, এবং ডিবাগিং-এ এটি খুব উপকারী। মনে রাখুন: শুধু ক্যাপচারিং গ্রুপই গণনা হয়।