Regular Expressions এবং Pattern Matching
Regular Expressions (যা সংক্ষেপে Regex বা RegEx হিসেবেও পরিচিত) হল একটি শক্তিশালী প্যাটার্ন বা টেমপ্লেট যা স্ট্রিং (text) এর মধ্যে নির্দিষ্ট প্যাটার্ন বা ফর্ম্যাট খুঁজে বের করতে ব্যবহৃত হয়। এটি বিশেষ করে টেক্সট প্রসেসিং, ডেটা ভ্যালিডেশন, এবং স্ট্রিং ম্যানিপুলেশন কার্যক্রমে ব্যবহৃত হয়। Pattern Matching হল সেই প্রক্রিয়া যেখানে একটি নির্দিষ্ট প্যাটার্ন অনুসারে ডেটা খুঁজে বের করা হয়। VB.Net এ Regular Expressions এবং Pattern Matching কে সহজভাবে ব্যবহার করা যায়।
১. Regular Expressions (Regex) কী?
Regular Expressions (Regex) হল একটি টেক্সট প্যাটার্ন, যা বিভিন্ন ধরনের টেক্সটের মধ্যে অনুসন্ধান করতে এবং তার উপর অপারেশন করতে ব্যবহৃত হয়। এটি সাধারণত নির্দিষ্ট শর্ত বা প্যাটার্ন অনুসারে টেক্সট বা স্ট্রিং ম্যানিপুলেশন করে যেমন খোঁজা, প্রতিস্থাপন, বা ভ্যালিডেশন।
Regex এর সাহায্যে আপনি বিভিন্ন কাজ করতে পারেন, যেমন:
- স্ট্রিং এর মধ্যে নির্দিষ্ট শব্দ বা ক্যারেক্টার খুঁজে বের করা
- একটি নির্দিষ্ট ফর্ম্যাটের স্ট্রিং (যেমন ইমেইল, ফোন নম্বর, ZIP কোড) যাচাই করা
- স্ট্রিং এর মধ্যে কিছু অংশ আলাদা করা বা প্রতিস্থাপন করা
Regex এর মূল উপাদানগুলি:
- Metacharacters: এগুলি বিশেষ ক্যারেক্টার যা প্যাটার্নের অংশ হিসেবে ব্যবহৃত হয় (যেমন
^,$,.ইত্যাদি)। - Quantifiers: এগুলি নির্দিষ্ট করে দেয় একটি ক্যারেক্টারের কতবার উপস্থিতি থাকতে হবে (যেমন
*,+,?,{n,m})। - Character Classes: এটি একটি গ্রুপ, যেটি এক বা একাধিক চরিত্রের একটি সেট বর্ণনা করে (যেমন
[a-z],\d,\w)। - Anchors: এগুলি একটি স্ট্রিংয়ের শুরুর বা শেষের অবস্থান নির্দেশ করে (যেমন
^এবং$)।
২. Pattern Matching
Pattern Matching হল সেই প্রক্রিয়া যেখানে আপনি একটি স্ট্রিং বা ডেটার মধ্যে একটি নির্দিষ্ট প্যাটার্ন বা শর্ত অনুসারে অনুসন্ধান করেন। Regular Expressions এর মাধ্যমে Pattern Matching সহজ হয়।
উদাহরণ: ইমেইল ঠিকানা যাচাই করা
ধরা যাক, আপনি একটি বৈধ ইমেইল ঠিকানা যাচাই করতে চান। Regex ব্যবহার করে এটি করা সম্ভব।
Dim emailPattern As String = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
Dim email As String = "example@domain.com"
If System.Text.RegularExpressions.Regex.IsMatch(email, emailPattern) Then
Console.WriteLine("Valid Email")
Else
Console.WriteLine("Invalid Email")
End Ifএখানে, ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ হল একটি regular expression pattern, যা একটি বৈধ ইমেইল ঠিকানার ফরম্যাট যাচাই করে।
৩. Regex-এর কিছু সাধারণ প্যাটার্ন
| প্যাটার্ন | বর্ণনা | উদাহরণ |
|---|---|---|
^ | স্ট্রিংয়ের শুরুতে প্যাটার্ন মেলে | ^abc → স্ট্রিংটি "abc" দিয়ে শুরু হতে হবে। |
$ | স্ট্রিংয়ের শেষে প্যাটার্ন মেলে | abc$ → স্ট্রিংটি "abc" দিয়ে শেষ হতে হবে। |
. | যেকোনো একক চরিত্র মেলে | a.b → "a" এবং "b" এর মধ্যে যেকোনো একক চরিত্র থাকতে পারে। |
\d | যেকোনো ডিজিট (0-9) মেলে | \d{3} → ৩টি ডিজিট মেলে (যেমন 123)। |
\w | যেকোনো শব্দের চরিত্র (A-Z, a-z, 0-9, _) মেলে | \w+ → এক বা একাধিক শব্দের চরিত্র। |
[] | চরিত্রের একটি সেটের মধ্যে মেলে | [a-z] → একটি ছোট হাতের অক্ষর। |
| ` | ` | অথবা (OR) |
* | পূর্ববর্তী চরিত্রটি ০ বা তার বেশি বার উপস্থিত হতে পারে | a*b → "b", "ab", "aaab" ইত্যাদি। |
+ | পূর্ববর্তী চরিত্রটি ১ বা তার বেশি বার উপস্থিত হতে পারে | a+b → "ab", "aab", "aaab" ইত্যাদি। |
{n,m} | পূর্ববর্তী চরিত্রটি n থেকে m বার উপস্থিত হতে পারে | a{2,4} → "aa", "aaa", "aaaa" |
৪. Regex ব্যবহার করার জন্য VB.Net-এর মেথড
Regex.IsMatch: স্ট্রিংয়ের মধ্যে একটি প্যাটার্ন মেলে কিনা তা যাচাই করতে ব্যবহৃত হয়।
If System.Text.RegularExpressions.Regex.IsMatch(inputString, pattern) Then ' প্যাটার্ন মেলে End IfRegex.Match: একটি স্ট্রিংয়ের মধ্যে প্যাটার্ন মেলানোর প্রথম ম্যাচটি ফেরত দেয়।
Dim match As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(inputString, pattern) If match.Success Then ' ম্যাচ পাওয়া গেছে Console.WriteLine(match.Value) ' ম্যাচের মান দেখাবে End IfRegex.Replace: স্ট্রিংয়ে প্যাটার্ন অনুযায়ী কিছু অংশ প্রতিস্থাপন করে।
Dim replacedString As String = System.Text.RegularExpressions.Regex.Replace(inputString, pattern, "replacement") Console.WriteLine(replacedString)Regex.Split: স্ট্রিংকে একটি নির্দিষ্ট প্যাটার্নের ভিত্তিতে বিভক্ত করে।
Dim parts() As String = System.Text.RegularExpressions.Regex.Split(inputString, pattern) For Each part As String In parts Console.WriteLine(part) Next
৫. Regex ব্যবহার করে Pattern Matching এর উদাহরণ
উদাহরণ 1: ফোন নম্বর যাচাই করা
Dim phonePattern As String = "^\d{3}-\d{3}-\d{4}$"
Dim phoneNumber As String = "123-456-7890"
If System.Text.RegularExpressions.Regex.IsMatch(phoneNumber, phonePattern) Then
Console.WriteLine("Valid Phone Number")
Else
Console.WriteLine("Invalid Phone Number")
End Ifএই উদাহরণে, ফোন নম্বরের ফরম্যাট xxx-xxx-xxxx চেক করা হয়েছে যেখানে x ডিজিট হতে হবে।
উদাহরণ 2: ইমেইল যাচাই করা
Dim emailPattern As String = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
Dim email As String = "example@domain.com"
If System.Text.RegularExpressions.Regex.IsMatch(email, emailPattern) Then
Console.WriteLine("Valid Email")
Else
Console.WriteLine("Invalid Email")
End Ifএখানে, ইমেইল ঠিকানার বৈধতা যাচাই করতে Regex প্যাটার্ন ব্যবহার করা হয়েছে।
সারাংশ:
- Regular Expressions (Regex) একটি শক্তিশালী টুল যা স্ট্রিং বা টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন অনুসন্ধান এবং ম্যানিপুলেশন করতে ব্যবহৃত হয়।
- Pattern Matching হল প্যাটার্ন অনুসারে ডেটা খুঁজে বের করার প্রক্রিয়া।
- VB.Net-এ
Regex.IsMatch,Regex.Match,Regex.Replace, এবংRegex.Splitমেথড ব্যবহার করে আমরা বিভিন্ন প্যাটার্ন খুঁজে বের করতে, প্রতিস্থাপন করতে এবং বিভক্ত করতে পারি।
Regex এবং Pattern Matching দিয়ে আপনি ডেটা যাচাই, স্ট্রিং বিশ্লেষণ, এবং স্ট্রিং ম্যানিপুলেশন কার্যক্রমগুলো অনেক সহজ এবং কার্যকরভাবে করতে পারবেন।
Read more