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

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

সাবএক্সপ্রেশন/মেটাক্যারেক্টার "(?: re)" রেগুলার এক্সপ্রেশন গ্রুপ করে কিন্তু ম্যাচ করা টেক্সট মনে রাখে না (নন-ক্যাপচারিং গ্রুপ)। এটি ক্যাপচারিং গ্রুপ () থেকে আলাদা, কারণ এখানে গ্রুপ নম্বর অ্যাসাইন হয় না।

উদাহরণ: ডিজিট ম্যাচিং (নন-ক্যাপচারিং)

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PatternExample {
    public static void main(String args[]) {
        System.out.println("একটি স্ট্রিং দিন:");
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        String regex = "(?:[0-9])";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        boolean bool = matcher.find();
        if (bool) {
            System.out.print("ম্যাচ পাওয়া গেল");
        } else {
            System.out.print("ম্যাচ পাওয়া যায়নি");
        }
    }
}

আউটপুট

একটি স্ট্রিং দিন: 9848022338
ম্যাচ পাওয়া গেল

নন-ক্যাপচারিং গ্রুপের সুবিধা:

  • মেমরি ও পারফরম্যান্স বড়্তায় (গ্রুপ ক্যাপচার না করলে)
  • গ্রুপ নম্বরিং সহজ রাখে (ব্যাকরেফারেন্স \1, \2 ইত্যাদি দূষিত হয় না)
  • রেগেক্স পড়া সহজ হয়

ব্যবহার ক্ষেত্র: শুধু গ্রুপিং-এর জন্য (যেমন অল্টারনেশন | বা কোয়ান্টিফায়ার প্রয়োগ করতে) যখন ক্যাপচার করার প্রয়োজন নেই।

  1. জাভা রেগুলার এক্সপ্রেশনে \D মেটাক্যারেক্টার ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে \S মেটাক্যারেক্টার ব্যাখ্যা

  3. জাভাতে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে লিডিং জিরো সরানো

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