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