বিকল্প এবং তাদের অ্যাপ্লিকেশন
বাস্তব বিশ্বের অ্যাপ্লিকেশনে, আমরা প্রায়শই নিয়মিত অভিব্যক্তি ব্যবহার করি যা দুটি বা ততোধিক বিকল্পের যেকোনো একটির সাথে মেলে। এছাড়াও, আমরা মাঝে মাঝে বিভিন্ন এক্সপ্রেশনে প্রয়োগ করতে একটি কোয়ান্টিফায়ার ব্যবহার করি। এই ধরনের সমস্ত লক্ষ্য বন্ধনী দিয়ে গোষ্ঠীবদ্ধ করে অর্জন করা হয়; এবং, বিকল্পের ব্যবহারে, উল্লম্ব বার (|) দিয়ে বিকল্প প্রয়োগ করা।
উল্লম্ব বার ব্যবহার করে(|)
অল্টারনেশান উপযোগী হয় যখন আমাদের বিভিন্ন বিকল্পের যেকোনো একটির সাথে মেলাতে হয়। উদাহরণ স্বরূপ, রেজেক্স এয়ারওয়েজ|এয়ারপ্লেন|বোম্বারটি এয়ারওয়েজ বা এয়ারপ্লেন বা বোম্বার রয়েছে এমন যেকোনো টেক্সটের সাথে মিলবে। একই রেজেক্স এয়ার(ওয়েস|প্লেন)|বোমার ব্যবহার করে অর্জন করা হয়।
যদি আমরা regex ব্যবহার করি (এয়ারওয়েজ | বিমান রেজেক্স (এয়ার(ওয়েস|প্লেন)|বোম্বার) বিবেচনা করুন, যার দুটি ক্যাপচার আছে যদি প্রথম এক্সপ্রেশনটি মিলে যায় (প্রথম ক্যাপচার হিসাবে এয়ারওয়েজ বা এয়ারপ্লেন এবং দ্বিতীয় ক্যাপচার হিসাবে উপায় বা প্লেন), এবং একটি ক্যাপচার যদি দ্বিতীয় এক্সপ্রেশনটি মেলে ( বোমারু বিমান)। আমরা একটি খোলা বন্ধনী অনুসরণ করে ক্যাপচারিং এফেক্ট বন্ধ করতে পারি?:এভাবে:
(এয়ার(?:ওয়েস|প্লেন)|বোম্বার)
এটির সাথে মিল থাকলে শুধুমাত্র একটি ক্যাপচার থাকবে (এয়ারওয়ে বা বিমান বা বোমারু বিমান)।
উদাহরণ
নিম্নলিখিত কোডটি উপরে আলোচিত পয়েন্টগুলিকে ব্যাখ্যা করে −
import re s = 'airways aircraft airplane bomber' result = re.findall(r'(airways|airplane|bomber)', s) print result result2 = re.findall(r'(air(ways|plane)|bomber)', s) print result2 result3 = re.findall(r'(air(?:ways|plane)|bomber)', s) print result3
আউটপুট
৷এটি আউটপুট দেয়
['airways', 'airplane', 'bomber'] [('airways', 'ways'), ('airplane', 'plane'), ('bomber', '')] ['airways', 'airplane', 'bomber']