JavaScript এর RegExp এ Alternation মেটাচরিত্র (|) ব্যবহার করে আপনি একটি প্যাটার্নের মধ্যে বিকল্প (OR) শর্ত তৈরি করতে পারেন। অর্থাৎ, আপনি একটি প্যাটার্নের মধ্যে একাধিক বিকল্পের মধ্যে যেকোনো একটি মেলানোর জন্য এটি ব্যবহার করতে পারেন। এটি বিশেষভাবে কার্যকর যখন আপনি চাইছেন যে একটি স্ট্রিংয়ে একাধিক ভিন্ন প্যাটার্নের মধ্যে যেকোনো একটি মিলুক।
Alternation (|) এর কাজ
Alternation বা OR অপারেটর (|) দুটি বা তার বেশি বিকল্প প্যাটার্নের মধ্যে যেকোনো একটি মেলানোর জন্য ব্যবহৃত হয়। এটি নির্দিষ্ট প্যাটার্নের মধ্যে বিকল্পের মতো কাজ করে, যেখানে আপনি একাধিক প্যাটার্ন নির্দিষ্ট করে দিতে পারেন এবং RegExp প্রথম মিল পাওয়া প্যাটার্নটি মেনে চলবে।
উদাহরণ
ধরা যাক, আমরা একটি প্যাটার্ন তৈরি করতে চাই যা স্ট্রিংয়ের মধ্যে "cat" বা "dog" যেকোনো একটি শব্দ খুঁজে বের করবে। এজন্য আমরা cat|dog প্যাটার্ন ব্যবহার করতে পারি।
let regex = /cat|dog/;
let str1 = "I have a cat";
let str2 = "I have a dog";
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // true
এখানে, cat|dog প্যাটার্নটি স্ট্রিংয়ের মধ্যে "cat" বা "dog" যেকোনো একটি খুঁজে বের করবে। প্রথম স্ট্রিংয়ে এটি "cat" এর সাথে মিলছে এবং দ্বিতীয় স্ট্রিংয়ে "dog" এর সাথে।
Complex Alternatives
আপনি Alternation ব্যবহার করে আরো জটিল বিকল্প প্যাটার্ন তৈরি করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চান যে প্যাটার্নটি "cat", "dog", অথবা "bird" এর মধ্যে যেকোনো একটি শব্দ খুঁজে বের করুক, তাহলে আপনি cat|dog|bird ব্যবহার করতে পারেন।
let regex = /cat|dog|bird/;
let str = "I love my dog";
console.log(regex.test(str)); // true
এখানে, cat|dog|bird প্যাটার্নটি স্ট্রিংয়ের মধ্যে "dog" এর সাথে মিলে যাচ্ছে।
Grouping এবং Alternation
Alternation একত্রে grouping এর সাথে ব্যবহার করে আরো শক্তিশালী এবং সুনির্দিষ্ট প্যাটার্ন তৈরি করা সম্ভব। গ্রুপিং এর মাধ্যমে আপনি কিছু প্যাটার্নকে একটি ইউনিট হিসেবে ব্যবহার করতে পারেন, যাতে বিকল্পগুলি সঠিকভাবে নির্দিষ্ট করা যায়।
যেমন, যদি আপনি চান যে একটি প্যাটার্নে দুটি ভিন্ন বিকল্পের মধ্যে যেকোনো একটি মেলুক, আপনি গ্রুপিং ব্যবহার করতে পারেন:
let regex = /(cat|dog)/;
let str1 = "I have a cat";
let str2 = "I have a dog";
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // true
এখানে, (cat|dog) গ্রুপিংয়ের মধ্যে | বিকল্প অপারেটর ব্যবহার করা হয়েছে, যা "cat" অথবা "dog" এর মধ্যে যেকোনো একটি মেলাবে।
Alternation ব্যবহার করে ইমেল বা ফোন নম্বর ম্যাচিং
Alternation (|) এর সাহায্যে আপনি বিভিন্ন ধরনের প্যাটার্ন একত্রে ব্যবহার করে ইমেল বা ফোন নম্বরের মতো জটিল স্ট্রিং যাচাই করতে পারেন। উদাহরণস্বরূপ, একটি সিম্পল ইমেল প্যাটার্ন যা দুটি বিকল্পে মেলে:
let regex = /\w+@\w+\.(com|org|net)/;
let str1 = "hello@example.com";
let str2 = "hello@example.net";
let str3 = "hello@example.org";
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // true
console.log(regex.test(str3)); // true
এখানে, com|org|net বিকল্পগুলো Alternation এর মাধ্যমে ইমেলের ডোমেইন নামের অংশের বিকল্প তৈরি করেছে।
সারাংশ
Alternation বা | মেটাচরিত্রটি RegExp এ বিকল্প প্যাটার্ন তৈরির জন্য ব্যবহৃত হয়। এটি একাধিক প্যাটার্নের মধ্যে যেকোনো একটি মেলাতে সহায়তা করে। cat|dog এর মতো সাধারণ উদাহরণ থেকে শুরু করে গ্রুপিংয়ের সাথে আরো জটিল বিকল্প প্যাটার্ন তৈরি করা সম্ভব। এটি স্ট্রিং যাচাইয়ের জন্য খুবই শক্তিশালী একটি ফিচার, যেটি বিভিন্ন শর্ত একত্রে মেলাতে ব্যবহার করা যায়।
Read more