কম্পিউটার

নন ক্যাপচারিং গ্রুপ জাভা রেগুলার এক্সপ্রেশন:


ক্যাপচারিং গ্রুপ ব্যবহার করে আপনি একাধিক অক্ষরকে একটি একক হিসাবে বিবেচনা করতে পারেন৷ আপনাকে শুধু বন্ধনীর সেটের মধ্যে গোষ্ঠীবদ্ধ করার জন্য অক্ষরগুলি স্থাপন করতে হবে। যেমন −

(.*)(\\d+)(.*)

আপনি যদি একাধিক গ্রুপের সাথে মিল করার চেষ্টা করেন তবে প্রতিটি গ্রুপের ম্যাচের ফলাফল ক্যাপচার করা হয়। গ্রুপ() পদ্ধতিতে নিজ নিজ গ্রুপ নম্বর পাস করে আপনি ফলাফল পেতে পারেন। 1,2, 3 ইত্যাদি। (ডান থেকে বামে) গ্রুপ 0 পুরো ম্যাচ নির্দেশ করে।

উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CapturingGroups {
   public static void main( String args[] ) {
      System.out.println("Enter input text");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();
      String regex = "(.*)(\\d+)(.*)";
      //Create a Pattern object
      Pattern pattern = Pattern.compile(regex);
      //Now create matcher object.
      Matcher matcher = pattern.matcher(input);
      if (matcher.find( )) {
         System.out.println("Found value: " + matcher.group(0) );
         System.out.println("Found value: " + matcher.group(1) );
         System.out.println("Found value: " + matcher.group(2) );
         System.out.println("Found value: " + matcher.group(3) );
      } else {
            System.out.println("NO MATCH");
      }
   }
}

আউটপুট

Enter input text
sample data with 1234 (digits) in middle
Found value: sample data with 1234 (digits) in middle
Found value: sample data with 123
Found value: 4
Found value: (digits) in middle

নন ক্যাপচারিং গ্রুপ

নন-ক্যাপচারিং গ্রুপ একটি ক্যাপচারিং গ্রুপের একই কার্যকারিতা প্রদান করে কিন্তু এটি ফলাফল ক্যাপচার করে না

উদাহরণস্বরূপ, যদি গ্রুপ ব্যবহার করে একটি টেক্সট থেকে একটি URL বা একটি ফোন নম্বরের সাথে মিল করতে হয়, যেহেতু পছন্দসই সাব স্ট্রিংগুলির শুরুর অংশটি একই হয় তবে আপনাকে নির্দিষ্ট গোষ্ঠীর ফলাফলগুলি ক্যাপচার করতে হবে না এই ক্ষেত্রে আপনি নন ক্যাপচারিং গ্রুপগুলি ব্যবহার করতে পারেন৷ একটি নন-ক্যাপচারিং গ্রুপ (?:দিয়ে শুরু হয় এবং শেষ হয়) দিয়ে।

উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CapturingGroups {
   public static void main( String args[] ) {
      System.out.println("Enter input text");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();
      String regex = "(.*)(?:\\d+)(.*)";
      //Create a Pattern object
      Pattern pattern = Pattern.compile(regex);
      //Now create matcher object.
      Matcher matcher = pattern.matcher(input);
      if (matcher.find( )) {
         System.out.println("Found value: " + matcher.group(0) );
         System.out.println("Found value: " + matcher.group(1) );
         System.out.println("Found value: " + matcher.group(2) );
      } else {
         System.out.println("NO MATCH");
      }
   }
}

আউটপুট

Enter input text
sample data with 1234 (digits) in middle
Found value: sample data with 1234 (digits) in middle
Found value: sample data with 123
Found value: (digits) in middle

দ্রষ্টব্য: নন-ক্যাপচারিং গ্রুপকে গ্রুপ গণনায় অন্তর্ভুক্ত করা হবে না।


  1. জাভা রেগুলার এক্সপ্রেশনে সাব-এক্সপ্রেশন (?> রি) ব্যাখ্যা করুন

  2. জাভা রেগুলার এক্সপ্রেশনে সাব-এক্সপ্রেশন (?:re)

  3. জাভাতে রেগুলার এক্সপ্রেশন (পুনরায়) সাব-এক্সপ্রেশন

  4. জাভা রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে সংখ্যা বের করুন