সাবএক্সপ্রেশন/মেটাক্যারেক্টার "(?: 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ইত্যাদি দূষিত হয় না) - রেগেক্স পড়া সহজ হয়
ব্যবহার ক্ষেত্র: শুধু গ্রুপিং-এর জন্য (যেমন অল্টারনেশন | বা কোয়ান্টিফায়ার প্রয়োগ করতে) যখন ক্যাপচার করার প্রয়োজন নেই।