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

পাইথন রেগুলার এক্সপ্রেশনে গ্রুপিং (Grouping) এর কাজ

গ্রুপিং

রেগুলার এক্সপ্রেশনের একটি অংশকে প্যারেনথেসিস দিয়ে ঘেরে দিয়ে গ্রুপ করা হয়। এভাবে আমরা একক ক্যারেক্টারের বদলে পুরো গ্রুপের ওপর অপারেটর প্রয়োগ করতে পারি।

ক্যাপচারিং গ্রুপ

প্যারেনথেসিস শুধু সাব-এক্সপ্রেশন গ্রুপ করে না, বরং ব্যাকরেফারেন্সও তৈরি করে। গ্রুপ করা রেগুলার এক্সপ্রেশনের যে অংশ স্ট্রিংয়ের সাথে ম্যাচ হয়, সেটা একটি ব্যাকরেফারেন্সে সংরক্ষিত হয়। ব্যাকরেফারেন্সের সাহায্যে রেগুলার এক্সপ্রেশনের অংশগুলো পুনর্ব্যবহার করা যায়।

ব্যবহারিক অ্যাপ্লিকেশনে আমরা প্রায়ই এমন রেগুলার এক্সপ্রেশন চাই যা দুটি বা ততোধিক অ্যালটারনেটিভের যেকোনো একটি ম্যাচ করে।此外, আমরা কখনো কখনো চাই যে একটি কোয়ান্টিফায়ার একাধিক এক্সপ্রেশনের ওপর প্রয়োগ হোক। এই সব প্যারেনথেসিস দিয়ে গ্রুপিং এবং ভার্টিক্যাল বার (|) দিয়ে অ্যালটারনেশন দিয়ে অর্জন করা যায়।

অ্যালটারনেশন তখন কাজে আসে যখন আমরা বেশ কিছু ভিন্ন অ্যালটারনেটিভের যেকোনো একটি ম্যাচ করতে চাই। উদাহরণস্বরূপ, রেজেক্স aircraft|airplane|jet যেকোনো টেক্সট ম্যাচ করবে যাতে aircraft বা airplane বা jet থাকে। একই লক্ষ্য air(craft|plane)|jet রেজেক্স দিয়েও অর্জন করা যায়।

উদাহরণ

import re
s = 'Tahiti $% Tahiti *&^ 34 Atoll'
result = re.findall(r'(\w+)', s)
print(result)

আউটপুট

এটি নিচের আউটপুট দেবে:

['Tahiti', 'Tahiti', '34', 'Atoll']
  1. পাইথন রেগুলার এক্সপ্রেশনে অ্যালটারনেশন (Alternation) এর কাজ

  2. পাইথন রেগুলার এক্সপ্রেশনে ব্যাকরেফারেন্স (Backreferences) এর কাজ

  3. পাইথন রেগুলার এক্সপ্রেশন ব্যবহার করে একক ক্যারেক্টার ম্যাচ করার পদ্ধতি

  4. পাইথন রেগুলার এক্সপ্রেশনে মডিফায়ার (Modifiers/Flags) এর কাজ