Rexx একটি অত্যন্ত শক্তিশালী ভাষা যা স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিংয়ের জন্য বেশ কার্যকর। Rexx এ প্যাটার্ন ম্যাচিং এবং রেগুলার এক্সপ্রেশন (Regular Expressions) ব্যবহার করে জটিল স্ট্রিং বা ডেটা খোঁজা এবং ম্যানিপুলেট করা যায়। নিচে Rexx এ Pattern Matching এবং Regular Expressions ব্যবহার করার পদ্ধতি নিয়ে বিস্তারিত আলোচনা করা হল।
1. Pattern Matching (প্যাটার্ন ম্যাচিং)
Pattern Matching হল একটি পদ্ধতি যার মাধ্যমে আমরা একটি নির্দিষ্ট প্যাটার্ন বা স্ট্রিংকে আরেকটি স্ট্রিংয়ের মধ্যে খুঁজে বের করি। Rexx এ এটি খুবই সহজ, এবং সাধারণত match বা index ফাংশন ব্যবহার করা হয়। এছাড়া, parse কমান্ডও প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়।
match ফাংশন:
match ফাংশনটি একটি প্যাটার্নের সাথে মেলানো অংশ খুঁজে বের করে এবং এটি ম্যাচের পজিশন রিটার্ন করে। যদি কোন মেলানো অংশ না পাওয়া যায়, তবে এটি ০ রিটার্ন করে।
উদাহরণ:
pattern = "apple"
text = "I have an apple and an orange."
position = match(pattern, text)
if position > 0 then
say "Pattern found at position" position
else
say "Pattern not found."এই কোডে, "apple" প্যাটার্নটি "I have an apple and an orange." স্ট্রিংয়ের মধ্যে খুঁজে বের করা হচ্ছে। যদি এটি পাওয়া যায়, তবে মেলানো অংশের পজিশন প্রিন্ট করা হবে।
index ফাংশন:
index ফাংশনটি একটি স্ট্রিংয়ে সাবস্ট্রিং বা প্যাটার্ন খুঁজে বের করে এবং তার পজিশন রিটার্ন করে।
উদাহরণ:
text = "I love programming with Rexx."
position = index(text, "programming")
if position > 0 then
say "Found 'programming' at position" position
else
say "'programming' not found."এই কোডে, "programming" শব্দটি "I love programming with Rexx." স্ট্রিংয়ের মধ্যে খুঁজে বের করা হচ্ছে।
parse ফাংশন:
parse একটি শক্তিশালী টুল যা স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়। এটি খুবই উপকারী যখন আপনি স্ট্রিংয়ের কিছু অংশ আলাদা করতে চান।
উদাহরণ:
text = "Name: John, Age: 30"
parse var text "Name:" name ", Age:" age
say "Name: " name
say "Age: " ageএখানে, parse কমান্ডটি Name: এবং Age: এর পরের অংশ আলাদা করে বের করবে।
2. Regular Expressions (রেগুলার এক্সপ্রেশন)
Rexx-এ রেগুলার এক্সপ্রেশন (regex) ব্যবহার করা সম্ভব, যা স্ট্রিং ম্যানিপুলেশনের জন্য আরও শক্তিশালী এবং নমনীয় পদ্ধতি প্রদান করে। রেগুলার এক্সপ্রেশন দিয়ে আপনি আরও জটিল প্যাটার্ন খুঁজে বের করতে পারবেন, যেমন ইমেইল, ফোন নাম্বার, ওয়েব ইউআরএল ইত্যাদি।
regex ফাংশন:
Rexx-এ রেগুলার এক্সপ্রেশন ব্যবহারের জন্য regex ফাংশনটি ব্যবহার করা হয়। এটি একটি স্ট্রিংয়ের মধ্যে রেগুলার এক্সপ্রেশন প্যাটার্ন মেলে কিনা তা পরীক্ষা করে। Rexx-এ রেগুলার এক্সপ্রেশন ব্যবহারের জন্য আপনাকে regex ফাংশনটি ব্যবহার করতে হবে।
উদাহরণ:
text = "My email is example@example.com"
pattern = "([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})" /* Email regex pattern */
if regex(pattern, text) then
say "Email found!"
else
say "No email found."এখানে, একটি ইমেইল প্যাটার্ন ব্যবহার করে Rexx চেক করছে যে স্ট্রিংটি একটি বৈধ ইমেইল ঠিকানা ধারণ করে কি না।
রেগুলার এক্সপ্রেশন প্যাটার্নের উদাহরণ:
^: প্যাটার্ন শুরুতে অবস্থান। যেমন,^abcমানে স্ট্রিংয়ের শুরুতেabcথাকতে হবে।$: প্যাটার্ন শেষে অবস্থান। যেমন,abc$মানে স্ট্রিংয়ের শেষের দিকেabcথাকতে হবে।.: যেকোনো একক অক্ষর। যেমন,a.bমানেaএবংbএর মধ্যে যেকোনো একক অক্ষর থাকতে হবে।*: পূর্ববর্তী প্যাটার্নের শূন্য বা আরও বেশি ইনস্ট্যান্স। যেমন,a*bমানেaএর পর শূন্য বা আরও বেশিaথাকতে পারে এবং তারপরbথাকতে হবে।+: পূর্ববর্তী প্যাটার্নের এক বা তার বেশি ইনস্ট্যান্স। যেমন,a+bমানে এক বা তার বেশিaএবং তার পরbথাকবে।[]: নির্দিষ্ট অক্ষরের সেট। যেমন,[aeiou]মানে যেকোনো ভোকাল শব্দ।(): গ্রুপিং। যেমন,(abc|def)মানেabcবাdef।
3. Pattern Matching এবং Regex এর পার্থক্য
- Pattern Matching:
- সাধারণত একটি নির্দিষ্ট স্ট্রিং বা সাবস্ট্রিং খুঁজে বের করতে ব্যবহৃত হয়।
- Rexx এর
match,index, এবংparseফাংশনগুলো সহজ প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়। - সাধারণ স্ট্রিং মিলানো এবং সিম্পল প্যাটার্ন খোঁজা।
- Regular Expressions:
- আরও শক্তিশালী এবং নমনীয় প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়।
- এটি আরও জটিল এবং পরিমিত প্যাটার্ন খুঁজে বের করতে সক্ষম (যেমন, ইমেইল, ফোন নম্বর, ওয়েব ঠিকানা ইত্যাদি)।
regexফাংশন ব্যবহার করে জটিল প্যাটার্ন এবং মাল্টি-লাইন বা বিশেষ প্যাটার্ন খোঁজা যায়।
সারাংশ:
- Pattern Matching Rexx-এ সরল প্যাটার্ন মেলানোর জন্য ব্যবহৃত হয় এবং
match,index, এবংparseফাংশন দ্বারা এটি সম্পন্ন করা যায়। - Regular Expressions Rexx-এ শক্তিশালী প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়, যা অধিকতর জটিল এবং নমনীয় প্যাটার্ন খুঁজে বের করতে সক্ষম।
- Regex-এ রেগুলার এক্সপ্রেশন সিম্বল এবং কৌশল ব্যবহার করে আপনার স্ট্রিং ম্যানিপুলেশন কাজ আরও জটিল এবং দ্রুত করতে পারেন।
Read more