Regular Expressions (RegEx) বা নিয়মিত অভিব্যক্তি হল একটি বিশেষ ভাষা যা স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। VBScript এ RegExp অবজেক্ট ব্যবহার করে আপনি বিভিন্ন ধরনের স্ট্রিং প্যাটার্ন চেক, খুঁজে বের করা, এবং প্রক্রিয়া করতে পারেন। এটি ওয়েব ডেভেলপমেন্ট, ডেটা ভ্যালিডেশন, টেক্সট প্রসেসিং এবং আরও অনেক ক্ষেত্রে ব্যবহৃত হয়।
RegExp অবজেক্ট
RegExp (Regular Expression) অবজেক্ট VBScript এর একটি অন্তর্নিহিত অবজেক্ট যা স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন মাচিং এর জন্য ব্যবহৃত হয়। এটি Microsoft VBScript Regular Expression লাইব্রেরির অংশ এবং আপনাকে স্ট্রিং এর মধ্যে বিশেষ প্যাটার্ন খুঁজে বের করার সুযোগ দেয়।
RegExp অবজেক্ট তৈরির সিনট্যাক্স:
Dim objRegExp
Set objRegExp = New RegExp
RegExp এর প্রোপার্টি ও মেথড
RegExp অবজেক্টের কিছু গুরুত্বপূর্ণ প্রোপার্টি এবং মেথড রয়েছে যা স্ট্রিং প্যাটার্ন মাচিং এর জন্য ব্যবহৃত হয়।
প্রোপার্টি:
- Pattern: এখানে আপনি আপনার স্ট্রিং প্যাটার্নটি নির্ধারণ করেন। এটি একটি স্ট্রিং যা নির্দিষ্ট নিয়ম বা প্যাটার্নে ম্যাচ করবে।
- IgnoreCase: এটি যদি True হয়, তাহলে RegExp প্যাটার্ন মেচিংয়ের ক্ষেত্রে ক্যাস সেনসিটিভিটি উপেক্ষা করে।
- Global: এটি যদি True হয়, তাহলে প্যাটার্নটি সমস্ত ইনস্ট্যান্সে মেচ করবে (প্রথমটিই না, পুরো টেক্সটটি পরীক্ষা করবে)।
- MultiLine: এটি যদি True হয়, তাহলে প্যাটার্ন মাচিংয়ে নতুন লাইনের পরেও পরীক্ষা করবে।
মেথড:
- Test: এটি একটি স্ট্রিং টেস্ট করে এবং প্যাটার্নের সাথে ম্যাচ করে কিনা তা চেক করে।
- Execute: এটি স্ট্রিং এর মধ্যে প্যাটার্ন অনুসন্ধান করে এবং ম্যাচের তথ্য ফেরত দেয়।
উদাহরণ: RegExp ব্যবহার
১. Test মেথড ব্যবহার:
Test মেথড ব্যবহার করে আপনি চেক করতে পারেন যে একটি স্ট্রিং একটি নির্দিষ্ট প্যাটার্নের সাথে মেলে কি না।
উদাহরণ:
Dim objRegExp, strText
Set objRegExp = New RegExp
' প্যাটার্ন সেট করা
objRegExp.Pattern = "\d+" ' এক বা একাধিক ডিজিট
objRegExp.IgnoreCase = True
' স্ট্রিং সেট করা
strText = "My phone number is 12345."
' প্যাটার্ন টেস্ট করা
If objRegExp.Test(strText) Then
MsgBox "স্ট্রিং প্যাটার্নের সাথে মেলে!"
Else
MsgBox "স্ট্রিং প্যাটার্নের সাথে মেলে না!"
End If
এখানে, \d+ প্যাটার্নটি এক বা একাধিক ডিজিটের জন্য ব্যবহার করা হয়েছে। যদি strText এ কোনো ডিজিট থাকে তবে Test মেথড True রিটার্ন করবে এবং একটি মেসেজ বক্স দেখাবে।
২. Execute মেথড ব্যবহার:
Execute মেথড ব্যবহার করে আপনি প্যাটার্ন মেচিং এর সমস্ত ইনস্ট্যান্স খুঁজে বের করতে পারেন।
উদাহরণ:
Dim objRegExp, matches, strText, match
Set objRegExp = New RegExp
' প্যাটার্ন সেট করা
objRegExp.Pattern = "\d+" ' এক বা একাধিক ডিজিট
objRegExp.IgnoreCase = True
objRegExp.Global = True ' সমস্ত ম্যাচ খুঁজে বের করবে
' স্ট্রিং সেট করা
strText = "I have 2 apples, 3 bananas, and 15 oranges."
' Execute মেথড ব্যবহার
Set matches = objRegExp.Execute(strText)
' সমস্ত ম্যাচ দেখানো
For Each match In matches
MsgBox "ম্যাচ পাওয়া গিয়েছে: " & match.Value
Next
এখানে, \d+ প্যাটার্নটি দিয়ে আমরা সমস্ত ডিজিটের অংশ খুঁজে বের করছি। Global প্রোপার্টি True হওয়ায়, এটি স্ট্রিং এর সমস্ত ডিজিট খুঁজে বের করবে এবং সেগুলি মেসেজ বক্সে প্রদর্শন করবে।
RegExp এর কিছু সাধারণ প্যাটার্ন
- \d: একক ডিজিট (0-9)।
- \w: অক্ষর বা সংখ্যার একটি সেট (অক্ষর, ডিজিট, আন্ডারস্কোর)।
- \s: হোয়াইট স্পেস (স্পেস, ট্যাব, নিউ লাইন)।
- \b: শব্দের সীমানা (Word boundary)।
- \D: ডিজিটের বিপরীত (Non-digit)।
- +: এক বা একাধিক।
- {n,m}: n থেকে m পর্যন্ত ম্যাচ।
- ^: স্ট্রিংয়ের শুরুতে ম্যাচ।
- $: স্ট্রিংয়ের শেষে ম্যাচ।
উদাহরণ: প্যাটার্নের সাথে মেলানো
Dim objRegExp, strText
Set objRegExp = New RegExp
' প্যাটার্ন সেট করা
objRegExp.Pattern = "^[A-Za-z]+$" ' শুধুমাত্র অক্ষর
objRegExp.IgnoreCase = True
' স্ট্রিং সেট করা
strText = "HelloWorld"
' প্যাটার্ন টেস্ট করা
If objRegExp.Test(strText) Then
MsgBox "স্ট্রিংটি শুধুমাত্র অক্ষরেই রয়েছে!"
Else
MsgBox "স্ট্রিংটি অক্ষরের বাইরে কিছু রয়েছে!"
End If
এখানে, "^[A-Za-z]+$" প্যাটার্নটি স্ট্রিংয়ের শুরু এবং শেষ পর্যন্ত শুধুমাত্র অক্ষর (এ-বি) থাকতে হবে তা চেক করে।
সারাংশ
Regular Expressions (নিয়মিত অভিব্যক্তি) বা RegEx ব্যবহার করে VBScript এ স্ট্রিং প্যাটার্ন মাচিং করা খুবই শক্তিশালী এবং সহজ। RegExp অবজেক্ট ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে বের করতে, যাচাই করতে এবং ম্যানিপুলেট করতে পারেন। এর মাধ্যমে আপনি ডেটা ভ্যালিডেশন, স্ট্রিং ম্যানিপুলেশন, এবং বিভিন্ন ধরনের টেক্সট প্রসেসিং কার্যাবলী সহজেই করতে পারেন।
Regular Expressions (RegEx) হল একটি শক্তিশালী টুল যা টেক্সটের মধ্যে প্যাটার্ন খুঁজে বের করতে, সংশোধন করতে এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। VBScript-এ Regular Expressions ব্যবহারের মাধ্যমে আপনি টেক্সটের নির্দিষ্ট প্যাটার্ন সনাক্ত, বদলানো, যাচাই বা অন্যান্য কার্যক্রম পরিচালনা করতে পারেন। এটি বিশেষত ডেটা ভ্যালিডেশন (যেমন ইমেইল ঠিকানা, ফোন নম্বর) এবং টেক্সট প্রক্রিয়াকরণে ব্যবহৃত হয়।
Regular Expressions এর মৌলিক ধারণা
Regular Expressions বা RegEx একটি টেক্সট প্যাটার্ন ম্যাচিং সিস্টেম যা এক বা একাধিক চরিত্রের একটি শৃঙ্খলা বা প্যাটার্নের মাধ্যমে টেক্সট স্ট্রিংয়ের সাথে মেলে। VBScript-এ RegEx ব্যবহারের জন্য Microsoft VBScript Regular Expressions (MSVScript.RegExp) অবজেক্ট ব্যবহার করা হয়।
VBScript-এ Regular Expressions ব্যবহার
RegEx ব্যবহারের জন্য VBScript-এ প্রথমে একটি RegExp অবজেক্ট তৈরি করতে হয়। এই অবজেক্টটি প্যাটার্ন ম্যাচিং বা অন্যান্য RegEx কার্যক্রম পরিচালনা করবে।
১. RegExp অবজেক্ট তৈরি করা
Dim regEx
Set regEx = CreateObject("VBScript.RegExp")
এখানে, CreateObject("VBScript.RegExp") ব্যবহার করে একটি RegExp অবজেক্ট তৈরি করা হয়েছে।
২. RegExp অবজেক্টের প্রধান প্রপার্টিজ
RegEx অবজেক্টের কিছু গুরুত্বপূর্ণ প্রপার্টি আছে যা টেক্সট ম্যানিপুলেশন এবং প্যাটার্ন মেচিং পরিচালনা করতে সহায়তা করে।
- Pattern: এটি টেক্সট ম্যাচিংয়ের জন্য প্যাটার্ন ডিফাইন করে।
- Global: যদি এটি
Trueথাকে, তাহলে প্যাটার্নটি সমস্ত ম্যাচে অনুসন্ধান করবে; অন্যথায় প্রথম ম্যাচের জন্য অনুসন্ধান করবে। - IgnoreCase: যদি এটি
Trueথাকে, তাহলে প্যাটার্নটি কেস-সংবেদনশীল হবে না। - Multiline: যদি এটি
Trueথাকে, তাহলে একাধিক লাইনে প্যাটার্নের অনুসন্ধান করবে।
৩. Match পদ্ধতি
Match পদ্ধতিটি একটি টেক্সট স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়। এটি একটি MatchCollection অবজেক্ট প্রদান করে, যার মধ্যে ম্যাচিং তথ্য থাকবে।
উদাহরণ: একটি প্যাটার্নের সাথে মেলানো টেক্সট খুঁজে বের করা
Dim regEx, matches, inputText
Set regEx = CreateObject("VBScript.RegExp")
' প্যাটার্ন সেট করা (এখানে একটি ইমেইল ঠিকানা প্যাটার্ন)
regEx.Pattern = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
' ইনপুট টেক্সট
inputText = "আমার ইমেইল হল example@example.com"
' ম্যাচিং খুঁজে বের করা
Set matches = regEx.Execute(inputText)
' যদি কোনো ম্যাচ পাওয়া যায়
If matches.Count > 0 Then
MsgBox "ইমেইল ঠিকানা পাওয়া গেছে: " & matches(0).Value
Else
MsgBox "ইমেইল ঠিকানা পাওয়া যায়নি!"
End If
এখানে, RegEx প্যাটার্ন ব্যবহার করে ইমেইল ঠিকানা খুঁজে বের করা হয়েছে। Execute পদ্ধতি ব্যবহৃত হয়েছে টেক্সট স্ট্রিংয়ে প্যাটার্ন অনুসন্ধান করার জন্য।
৪. Replace পদ্ধতি
Replace পদ্ধতিটি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে সেটি পরিবর্তন করতে ব্যবহৃত হয়।
উদাহরণ: টেক্সটের মধ্যে প্যাটার্ন বদলানো
Dim regEx, result, inputText
Set regEx = CreateObject("VBScript.RegExp")
' প্যাটার্ন সেট করা
regEx.Pattern = "\d+" ' সমস্ত সংখ্যার প্যাটার্ন
regEx.IgnoreCase = True
' ইনপুট টেক্সট
inputText = "আমার ফোন নম্বর 12345 এবং 67890"
' সমস্ত সংখ্যা পরিবর্তন করা
result = regEx.Replace(inputText, "XXXXX")
' ফলাফল দেখানো
MsgBox result
এখানে, \d+ প্যাটার্ন ব্যবহার করে সমস্ত সংখ্যা পরিবর্তন করা হয়েছে, এবং প্রতিটি সংখ্যার পরিবর্তে XXXXX বসানো হয়েছে।
৫. Test পদ্ধতি
Test পদ্ধতিটি একটি বুলিয়ান মান প্রদান করে যা জানায় যে প্যাটার্নটি টেক্সটের সাথে মেলে কিনা।
উদাহরণ: প্যাটার্ন মেলা চেক করা
Dim regEx
Set regEx = CreateObject("VBScript.RegExp")
' প্যাটার্ন সেট করা
regEx.Pattern = "^[A-Za-z]+$"
' টেক্সট চেক করা
If regEx.Test("Hello") Then
MsgBox "টেক্সটটি প্যাটার্নের সাথে মেলে"
Else
MsgBox "টেক্সটটি প্যাটার্নের সাথে মেলে না"
End If
এখানে, Test পদ্ধতি ব্যবহার করে চেক করা হচ্ছে যে টেক্সটটি শুধুমাত্র অক্ষর (এবং অক্ষরই) থাকে কিনা।
সারাংশ
Regular Expressions (RegEx) VBScript এ শক্তিশালী টুল যা টেক্সট স্ট্রিংয়ের মধ্যে প্যাটার্ন সনাক্ত এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এটি VBScript.RegExp অবজেক্টের মাধ্যমে কাজ করে, যা প্যাটার্ন মেচিং, রিপ্লেসমেন্ট, এবং টেস্টিং সহ বিভিন্ন কার্যক্রম পরিচালনা করতে সক্ষম। Pattern, Global, IgnoreCase, Match, Replace, এবং Test এর মত পদ্ধতিগুলি RegEx এর কার্যকারিতা বাড়ায় এবং টেক্সট ম্যানিপুলেশন আরও কার্যকরী করে।
VBScript এ RegExp (Regular Expression) একটি শক্তিশালী টুল, যা স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন মেচিংয়ের জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আপনি স্ট্রিংয়ে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে পারেন, স্ট্রিং যাচাই করতে পারেন বা স্ট্রিংয়ের কিছু অংশ প্রতিস্থাপন করতে পারেন। VBScript এ RegExp অবজেক্ট ব্যবহারের মাধ্যমে জটিল টেক্সট ম্যানিপুলেশন কাজগুলো সহজে করা সম্ভব।
RegExp অবজেক্টের জন্য VBScript এ Microsoft VBScript Regular Expressions লাইব্রেরি ব্যবহার করতে হয়, যা একটি শক্তিশালী প্যাটার্ন ম্যাচিং এবং স্ট্রিং প্রসেসিং টুল।
RegExp অবজেক্ট তৈরি করা
RegExp অবজেক্ট ব্যবহার করতে, প্রথমে এটি তৈরি করতে হবে:
Dim regEx
Set regEx = CreateObject("VBScript.RegExp")
এখানে, regEx একটি RegExp অবজেক্ট যা স্ট্রিং যাচাই এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হবে।
RegExp অবজেক্টের গুণাবলী (Properties)
RegExp অবজেক্টের কিছু প্রধান গুণাবলী:
- IgnoreCase: এই গুণাবলীটি নির্ধারণ করে যে প্যাটার্নটি বড়-ছোট অক্ষরের পার্থক্য করবে কি না।
- Global: এই গুণাবলীটি নির্ধারণ করে যে প্যাটার্নটি স্ট্রিংয়ের প্রতিটি ম্যাচ খুঁজবে কি না, নাকি প্রথম মিল পেলেই থামবে।
- Multiline: এটি স্ট্রিংয়ের মধ্যে লাইনের শুরু এবং শেষ পয়েন্ট বুঝতে সাহায্য করে।
উদাহরণ:
regEx.IgnoreCase = True ' বড়-ছোট অক্ষরের পার্থক্য না করা
regEx.Global = True ' প্রতিটি ম্যাচ খুঁজে বের করা
regEx.Multiline = True ' মাল্টি-লাইন স্ট্রিং সমর্থন
RegExp অবজেক্টের মেথড (Methods)
RegExp অবজেক্টে কিছু গুরুত্বপূর্ণ মেথড রয়েছে, যেমন:
- Test: এই মেথডটি চেক করে যে, স্ট্রিংটি নির্দিষ্ট প্যাটার্নের সাথে মেলে কিনা।
- Execute: এই মেথডটি প্যাটার্ন অনুসারে স্ট্রিং খুঁজে বের করে এবং এর সাথে সম্পর্কিত ম্যাচগুলি ফিরিয়ে দেয়।
- Replace: এই মেথডটি নির্দিষ্ট প্যাটার্নটি প্রতিস্থাপন করার জন্য ব্যবহৃত হয়।
Test মেথড ব্যবহার
Test মেথডটি চেক করে যে স্ট্রিংটি RegExp প্যাটার্নের সাথে মেলে কিনা। এটি একটি বুলিয়ান মান (True বা False) রিটার্ন করে।
উদাহরণ:
Dim regEx, result
Set regEx = CreateObject("VBScript.RegExp")
regEx.IgnoreCase = True
regEx.Pattern = "hello" ' প্যাটার্ন সেট করা
' Test মেথড ব্যবহার
result = regEx.Test("Hello, world!")
If result Then
MsgBox "ম্যাচ পাওয়া গেছে!"
Else
MsgBox "ম্যাচ পাওয়া যায়নি!"
End If
এখানে, "Hello, world!" স্ট্রিংটি "hello" প্যাটার্নের সাথে মেলে, কারণ IgnoreCase সেট করা আছে, যার ফলে বড়-ছোট অক্ষরের পার্থক্য বিবেচনা করা হয়নি।
Execute মেথড ব্যবহার
Execute মেথডটি প্যাটার্ন অনুসারে স্ট্রিংয়ের মধ্যে মেচিং প্যাটার্নগুলি বের করে। এটি একটি MatchCollection অবজেক্ট রিটার্ন করে, যা সমস্ত ম্যাচগুলো ধারণ করে।
উদাহরণ:
Dim regEx, matches, match
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "\d+" ' এক বা একাধিক ডিজিট
regEx.Global = True ' সব মেলা খুঁজে বের করা
' Execute মেথড ব্যবহার
Set matches = regEx.Execute("The number is 123 and 456")
' প্রতিটি ম্যাচ প্রদর্শন
For Each match In matches
MsgBox "ম্যাচ পাওয়া গেছে: " & match.Value
Next
এখানে, \d+ প্যাটার্নটি সব ডিজিট খুঁজে বের করবে এবং "The number is 123 and 456" স্ট্রিং থেকে দুটি ম্যাচ (123 এবং 456) পাওয়া যাবে।
Replace মেথড ব্যবহার
Replace মেথডটি একটি স্ট্রিংয়ে নির্দিষ্ট প্যাটার্নটি খুঁজে প্রতিস্থাপন করতে ব্যবহৃত হয়।
উদাহরণ:
Dim regEx, result
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "apple" ' প্যাটার্ন
regEx.IgnoreCase = True ' বড়-ছোট অক্ষরের পার্থক্য না করা
' Replace মেথড ব্যবহার
result = regEx.Replace("I have an Apple and an apple.", "orange")
MsgBox result ' "I have an orange and an orange."
এখানে, "apple" শব্দটি "orange" দ্বারা প্রতিস্থাপিত হয়েছে, কারণ IgnoreCase সক্রিয় ছিল।
সারাংশ
VBScript এ RegExp অবজেক্ট স্ট্রিং যাচাই, প্যাটার্ন মেচিং এবং স্ট্রিং ম্যানিপুলেশন করার জন্য অত্যন্ত কার্যকরী। এটি Test, Execute, এবং Replace মেথডের মাধ্যমে স্ট্রিংয়ের নির্দিষ্ট প্যাটার্ন চেক করতে এবং সংশোধন করতে সহায়তা করে। RegExp অবজেক্টের গুণাবলী যেমন IgnoreCase, Global, এবং Multiline স্ট্রিং প্রসেসিংকে আরও উন্নত করে তোলে।
ভিবিস্ক্রিপ্ট (VBScript) স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিংয়ের জন্য শক্তিশালী ফিচার প্রদান করে, যা ডেটা প্রসেসিং এবং টেক্সট বিশ্লেষণে সহায়ক। VBScript তে স্ট্রিং সম্পর্কিত কার্যাবলী যেমন স্ট্রিং যোগ করা, কাটিং, প্যাটার্ন ম্যাচিং ইত্যাদি করা যায়। এখানে আমরা আলোচনা করব কিভাবে স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিং করা যায়, যেমন Regular Expressions (RegEx) ব্যবহার।
১. স্ট্রিং ম্যানিপুলেশন
VBScript এ স্ট্রিং ম্যানিপুলেশন অত্যন্ত সহজ, এবং এটি অনেকগুলো বিল্ট-ইন ফাংশন প্রদান করে। এই ফাংশনগুলি ব্যবহার করে স্ট্রিংকে পরিবর্তন, অনুসন্ধান এবং বিশ্লেষণ করা যায়।
স্ট্রিং যোগ করা (Concatenation)
স্ট্রিং যোগ করতে & অপারেটর ব্যবহার করা হয়।
উদাহরণ:
Dim firstName, lastName, fullName
firstName = "John"
lastName = "Doe"
' স্ট্রিং যোগ করা
fullName = firstName & " " & lastName
MsgBox fullName ' আউটপুট: John Doe
স্ট্রিং দৈর্ঘ্য বের করা (Finding String Length)
Len() ফাংশন ব্যবহার করে স্ট্রিংয়ের দৈর্ঘ্য বের করা যায়।
উদাহরণ:
Dim text, length
text = "Hello, World!"
' স্ট্রিং দৈর্ঘ্য বের করা
length = Len(text)
MsgBox length ' আউটপুট: 13
স্ট্রিংয়ের মধ্যে অংশ বের করা (Extracting Substring)
Mid() ফাংশন ব্যবহার করে স্ট্রিংয়ের একটি নির্দিষ্ট অংশ বের করা যায়।
উদাহরণ:
Dim text, part
text = "Hello, World!"
' স্ট্রিংয়ের 8তম চরিত্র থেকে 5টি অক্ষর বের করা
part = Mid(text, 8, 5)
MsgBox part ' আউটপুট: World
স্ট্রিংয়ের অংশ প্রতিস্থাপন (Replacing Substring)
Replace() ফাংশন দিয়ে স্ট্রিংয়ের একটি অংশ অন্য অংশ দিয়ে প্রতিস্থাপন করা যায়।
উদাহরণ:
Dim text, updatedText
text = "Hello, World!"
updatedText = Replace(text, "World", "VBScript")
MsgBox updatedText ' আউটপুট: Hello, VBScript
স্ট্রিংয়ের মধ্যে স্থান (Whitespace) সরানো (Trimming Whitespace)
Trim() ফাংশন স্ট্রিংয়ের শুরু এবং শেষের স্থান মুছে ফেলে।
উদাহরণ:
Dim text, trimmedText
text = " Hello, World! "
' স্ট্রিংয়ের উভয় পাশে স্থান মুছে ফেলা
trimmedText = Trim(text)
MsgBox trimmedText ' আউটপুট: Hello, World!
২. প্যাটার্ন ম্যাচিং (Pattern Matching)
ভিবিস্ক্রিপ্টে Regular Expressions (RegEx) ব্যবহার করে স্ট্রিংয়ের প্যাটার্ন ম্যাচিং করা যায়। RegExp অবজেক্ট ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে পারেন, যেমন ইমেইল ঠিকানা, ফোন নম্বর, বা নির্দিষ্ট শব্দ।
RegExp অবজেক্ট ব্যবহার করা
RegExp অবজেক্ট ব্যবহার করে স্ট্রিংয়ের প্যাটার্ন ম্যাচিং করা হয়।
উদাহরণ: RegExp ব্যবহার করে প্যাটার্ন ম্যাচিং
Dim regEx, str, matches
' RegExp অবজেক্ট তৈরি করা
Set regEx = CreateObject("VBScript.RegExp")
' প্যাটার্ন সেট করা (যেমন: ইমেইল ঠিকানা)
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"
' স্ট্রিং প্যাটার্ন মিলানো
str = "My email is john.doe@example.com and jane_doe@company.org."
Set matches = regEx.Execute(str)
' ম্যাচিং ফলাফল প্রদর্শন করা
For Each match In matches
MsgBox "Match found: " & match.Value
Next
Set regEx = Nothing
এখানে:
- Pattern: ইমেইল ঠিকানার প্যাটার্ন নির্ধারণ করা হয়েছে।
- Execute(): এটি স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে এবং ম্যাচিং ফলাফল প্রদান করে।
RegExp ব্যবহার করে স্ট্রিং চেক করা
এছাড়াও আপনি Test() মেথড ব্যবহার করে প্যাটার্নের সাথে স্ট্রিংটি মিলছে কিনা তা চেক করতে পারেন।
Dim regEx, str
Set regEx = CreateObject("VBScript.RegExp")
regEx.IgnoreCase = True
regEx.Pattern = "^Hello"
str = "Hello, World!"
' স্ট্রিং প্যাটার্নের সাথে মিলছে কিনা পরীক্ষা করা
If regEx.Test(str) Then
MsgBox "Match found!"
Else
MsgBox "No match found."
End If
Set regEx = Nothing
এখানে:
- Test() মেথডটি স্ট্রিংটি প্যাটার্নের সাথে মিলছে কিনা তা পরীক্ষা করে।
৩. স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ খোঁজা (Finding Substring)
InStr() ফাংশন ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট শব্দ বা অংশ খুঁজে পেতে পারেন।
Dim text, position
text = "Hello, World!"
' 'World' শব্দটি কোথায় আছে তা খোঁজা
position = InStr(text, "World")
If position > 0 Then
MsgBox "'World' found at position: " & position
Else
MsgBox "'World' not found."
End If
এখানে:
- InStr() ফাংশনটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দের অবস্থান দেয়। যদি শব্দটি পাওয়া না যায় তবে এটি 0 রিটার্ন করবে।
সারাংশ
ভিবিস্ক্রিপ্টে স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিং করার জন্য বিভিন্ন শক্তিশালী ফাংশন এবং অবজেক্ট রয়েছে। আপনি Len(), Mid(), Replace() ইত্যাদি ফাংশন দিয়ে স্ট্রিং ম্যানিপুলেশন করতে পারেন এবং RegExp অবজেক্ট ব্যবহার করে প্যাটার্ন ম্যাচিং (যেমন ইমেইল ঠিকানা, ফোন নম্বর) করতে পারেন। InStr(), Trim() ইত্যাদি ফাংশন আপনাকে স্ট্রিংয়ের মধ্যে নির্দিষ্ট অংশ খুঁজে এবং স্ট্রিং পরিষ্কার করতে সাহায্য করবে।
ভিবিস্ক্রিপ্ট (VBScript) ব্যবহার করে কাস্টম ফিল্টার এবং ভ্যালিডেশন টুল তৈরি করা খুবই কার্যকরী হতে পারে। এটি ডেটা ইনপুট যাচাই (validation) এবং কিছু নির্দিষ্ট শর্তে ফিল্টারিংয়ের জন্য ব্যবহৃত হয়, যেমন: টেক্সট ফিল্টার, নম্বর যাচাই, এবং ইমেইল বা ফোন নম্বর ফর্ম্যাট যাচাই।
এই টুলগুলি সাধারণত ব্যবহারকারীর ইনপুট যাচাই এবং প্রয়োজনীয় ফিল্টার প্রয়োগ করার জন্য ব্যবহার করা হয়, যাতে ভুল বা অপ্রাসঙ্গিক ডেটা ডাটাবেসে জমা না পড়ে।
১. কাস্টম ফিল্টার তৈরি করা (Creating Custom Filters)
ফিল্টারগুলি ব্যবহৃত হয় ডেটা থেকে নির্দিষ্ট মান বের করার জন্য। ভিবিস্ক্রিপ্টে ফিল্টার তৈরি করতে সাধারণত লজিক্যাল অপারেটর এবং রেগুলার এক্সপ্রেশন (Regular Expressions) ব্যবহার করা হয়।
উদাহরণ: শুধু সংখ্যাই যাচাই করা (Filter Only Numbers)
এখানে, আমরা এমন একটি কাস্টম ফিল্টার তৈরি করবো যা ইনপুট থেকে শুধু সংখ্যাগুলি বের করবে এবং যেকোনো অক্ষর বা স্পেস বাদ দেবে।
Function FilterNumbers(inputText)
Dim filteredText
filteredText = ""
' ইনপুটের প্রতিটি ক্যারেক্টার চেক করা
For i = 1 To Len(inputText)
If Mid(inputText, i, 1) >= "0" And Mid(inputText, i, 1) <= "9" Then
filteredText = filteredText & Mid(inputText, i, 1)
End If
Next
FilterNumbers = filteredText
End Function
' ইনপুট চেক করা
Dim userInput
userInput = "abc123def456"
Dim result
result = FilterNumbers(userInput)
MsgBox "Filtered Numbers: " & result ' আউটপুট: "123456"
এখানে, FilterNumbers ফাংশনটি শুধুমাত্র সংখ্যাগুলি বের করে এবং বাকী অক্ষরগুলি বাদ দেয়।
২. ভ্যালিডেশন টুলস তৈরি করা (Creating Validation Tools)
ভ্যালিডেশন টুলগুলি সাধারণত ইনপুটের সঠিকতা যাচাই করার জন্য ব্যবহৃত হয়। এটি টেক্সট, ইমেইল, ফোন নম্বর, তারিখ ইত্যাদি যাচাই করতে ব্যবহৃত হতে পারে।
উদাহরণ: ইমেইল ঠিকানা যাচাই (Email Validation)
ভিবিস্ক্রিপ্টে ইমেইল ঠিকানা যাচাই করার জন্য রেগুলার এক্সপ্রেশন (Regular Expression) ব্যবহার করা যেতে পারে।
Function ValidateEmail(email)
Dim regex, matches
Set regex = New RegExp
' ইমেইল ফরম্যাট যাচাই করার জন্য রেগুলার এক্সপ্রেশন
regex.IgnoreCase = True
regex.Global = True
regex.Pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"
' রেগুলার এক্সপ্রেশন দিয়ে মেল খুঁজে বের করা
Set matches = regex.Execute(email)
If matches.Count > 0 Then
ValidateEmail = True
Else
ValidateEmail = False
End If
End Function
' ইনপুট চেক করা
Dim userEmail
userEmail = "test@example.com"
If ValidateEmail(userEmail) Then
MsgBox "Valid email!"
Else
MsgBox "Invalid email!"
End If
এখানে, ValidateEmail ফাংশনটি রেগুলার এক্সপ্রেশন ব্যবহার করে একটি সঠিক ইমেইল ফরম্যাট যাচাই করে।
৩. ফোন নম্বর ভ্যালিডেশন (Phone Number Validation)
ভিবিস্ক্রিপ্টে ফোন নম্বরের জন্য একটি সাধারণ ভ্যালিডেশন টুল তৈরি করা যেতে পারে, যা নির্দিষ্ট সংখ্যক ডিজিটের ফোন নম্বর গ্রহণ করবে।
উদাহরণ: ফোন নম্বর ভ্যালিডেশন
Function ValidatePhoneNumber(phoneNumber)
' ফোন নম্বরের জন্য রেগুলার এক্সপ্রেশন
Dim regex, matches
Set regex = New RegExp
regex.IgnoreCase = True
regex.Global = True
regex.Pattern = "^\+?\d{10,15}$" ' ফোন নম্বরের জন্য ১০-১৫ ডিজিট এবং ঐচ্ছিক + সাইন
' রেগুলার এক্সপ্রেশন দিয়ে মেল খুঁজে বের করা
Set matches = regex.Execute(phoneNumber)
If matches.Count > 0 Then
ValidatePhoneNumber = True
Else
ValidatePhoneNumber = False
End If
End Function
' ফোন নম্বর চেক করা
Dim userPhoneNumber
userPhoneNumber = "+1234567890"
If ValidatePhoneNumber(userPhoneNumber) Then
MsgBox "Valid phone number!"
Else
MsgBox "Invalid phone number!"
End If
এখানে, ফোন নম্বর ভ্যালিডেশন করার জন্য একটি রেগুলার এক্সপ্রেশন ব্যবহার করা হয়েছে, যা ১০ থেকে ১৫ ডিজিটের ফোন নম্বর যাচাই করে।
৪. তারিখ ফরম্যাট ভ্যালিডেশন (Date Format Validation)
এছাড়াও, আপনি ইনপুট তারিখ যাচাই করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো যা শুধুমাত্র সঠিক DD/MM/YYYY ফরম্যাটে তারিখ গ্রহণ করবে।
উদাহরণ: তারিখ ফরম্যাট ভ্যালিডেশন
Function ValidateDate(inputDate)
Dim regex, matches
Set regex = New RegExp
' তারিখের সঠিক ফরম্যাট যাচাই (DD/MM/YYYY)
regex.IgnoreCase = True
regex.Global = True
regex.Pattern = "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$"
' রেগুলার এক্সপ্রেশন দিয়ে মেল খুঁজে বের করা
Set matches = regex.Execute(inputDate)
If matches.Count > 0 Then
ValidateDate = True
Else
ValidateDate = False
End If
End Function
' তারিখ চেক করা
Dim userDate
userDate = "25/12/2024"
If ValidateDate(userDate) Then
MsgBox "Valid date!"
Else
MsgBox "Invalid date!"
End If
এখানে, DD/MM/YYYY ফরম্যাটের তারিখ যাচাই করতে রেগুলার এক্সপ্রেশন ব্যবহার করা হয়েছে।
সারাংশ
VBScript ব্যবহার করে আপনি কাস্টম ফিল্টার এবং ভ্যালিডেশন টুল তৈরি করতে পারেন। এতে:
- কাস্টম ফিল্টার ব্যবহার করে ইনপুট থেকে অপ্রয়োজনীয় বা অপ্রাসঙ্গিক ডেটা ফিল্টার করা যায়।
- ভ্যালিডেশন টুল ব্যবহার করে ইনপুটের সঠিকতা নিশ্চিত করা যায়, যেমন ইমেইল ঠিকানা, ফোন নম্বর বা তারিখ ফরম্যাট যাচাই।
এই কাস্টম ফিল্টার এবং ভ্যালিডেশন টুলগুলি ব্যবহারকারীর ইনপুট যাচাই এবং সঠিক ডেটা নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more