জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশনে নন-ক্যাপচারিং ব্র্যাকেট
বন্ধনী ( ) দুটি কাজ করে -
অক্ষর গোষ্ঠীবদ্ধকরণ এবং ক্যাপচার গ্রুপের কাজ। কিন্তু
কি করবেন যদি আপনার গোষ্ঠীবদ্ধকরণের প্রয়োজন হয়,
কিন্তু ক্যাপচার গ্রুপে রাখার প্রয়োজন না থাকে?
এই সমস্যার সমাধানের জন্য বিশেষ
নন-ক্যাপচারিং ব্র্যাকেট (?: )
উদ্ভাবন করা হয়েছে - তারা গোষ্ঠীবদ্ধ করে, কিন্তু ক্যাপচার গ্রুপে রাখে না।
উদাহরণ
নিম্নলিখিত উদাহরণে, প্রথম বন্ধনীগুলি আমাদের প্রয়োজন গোষ্ঠীবদ্ধকরণের জন্য, এবং দ্বিতীয়টি - ক্যাপচার গ্রুপের জন্য। যাইহোক, উভয় ধরনের বন্ধনীই ডেটা সংরক্ষণ করে ক্যাপচার গ্রুপে:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
ফলস্বরূপ আমাদের ক্যাপচার গ্রুপে নিম্নলিখিতটি থাকবে:
console.log(res[0]); // দেখাবে 'abab123'
console.log(res[1]); // দেখাবে 'ab'
console.log(res[2]); // দেখাবে '123'
উদাহরণ
আসুন প্রথম বন্ধনী জোড়াটিকে শুধুমাত্র গোষ্ঠীবদ্ধ করার জন্য করি, কিন্তু ক্যাপচার গ্রুপে না রাখার জন্য:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
ফলস্বরূপ প্রথম ক্যাপচার গ্রুপে আমাদের সংখ্যাটি থাকবে:
console.log(res[1]); // দেখাবে '123'