গ্রুপিং
রেগুলার এক্সপ্রেশনের একটি অংশকে প্যারেনথেসিসের জোড়া দিয়ে ঘেরে দিয়ে গ্রুপ করা হয়। এভাবে আমরা একক ক্যারেক্টারের বদলে গ্রুপের ওপর অপারেটর প্রয়োগ করতে পারি।
ক্যাপচারিং গ্রুপ এবং ব্যাকরেফারেন্স
প্যারেনথেসিস শুধু সাব-এক্সপ্রেশন গ্রুপ করে না, বরং ব্যাকরেফারেন্সও তৈরি করে। গ্রুপ করা রেগুলার এক্সপ্রেশনের যে অংশ স্ট্রিংয়ের সাথে ম্যাচ হয়, সেটা একটি ব্যাকরেফারেন্সে সংরক্ষিত হয়। ব্যাকরেফারেন্সের ব্যবহারে রেগুলার এক্সপ্রেশনের অংশগুলো পুনর্ব্যবহার করা যায়।
যদি সাব-এক্সপ্রেশন প্যারেনথেসিসে রাখা হয়, তবে সেটাকে \1 বা $1 ইত্যাদি দিয়ে অ্যাক্সেস করা যায়।
উদাহরণস্বরূপ, রেজেক্স \b(\w+)\b\s+\1\b রিপিটেড ওয়ার্ড ম্যাচ করে, যেমন tahiti tahiti, কারণ (\w+)-এ প্যারেনথেসিস একটি ওয়ার্ড ক্যাপচার করে গ্রুপ ১-এ, তারপর ব্যাক-রেফারেন্স \1 গ্রুপ ১-এ ক্যাপচার করা ক্যারেক্টারগুলো ম্যাচ করে।
উদাহরণ
import re s = 'Tahiti Tahiti Atoll' result = re.findall(r'\b(\w+)\b\s+\1\b', s) print(result)
আউটপুট
এটি নিচের আউটপুট দেবে:
['Tahiti']