কম্পিউটার টিউটোরিয়াল

জাভা রেগুলার এক্সপ্রেশন: MatchResult.groupCount() মেথড উদাহরণসহ


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()` রেজেক্স প্যাটার্নে কতটি ক্যাপচারিং গ্রুপ আছে তা জানার দ্রুত উপায়। ডাইনামিক রেজেক্স প্রসেসিং, জেনেরিক পার্সার, এবং ডিবাগিং-এ এটি খুব উপকারী। মনে রাখুন: শুধু ক্যাপচারিং গ্রুপই গণনা হয়।

  1. জাভায় Matcher group() মেথড উদাহরণসহ ব্যাখ্যা

  2. জাভায় Matcher appendTail() মেথড উদাহরণসহ ব্যাখ্যা

  3. জাভায় Matcher reset() মেথড উদাহরণসহ ব্যাখ্যা

  4. জাভায় Matcher pattern() মেথড উদাহরণসহ ব্যাখ্যা