Groovy তে Pattern Matching এবং String Searching
Groovy তে Pattern Matching এবং String Searching অত্যন্ত শক্তিশালী এবং কার্যকরী কৌশল। Groovy বিভিন্ন built-in মেথড এবং regular expressions (regex) ব্যবহার করে স্ট্রিংগুলির মধ্যে প্যাটার্ন খোঁজা, মিলানো এবং প্রক্রিয়াকরণ করতে সহায়তা করে। এখানে আমরা Groovy তে Pattern Matching এবং String Searching এর ব্যবহারের কিছু সাধারণ পদ্ধতি আলোচনা করবো।
1. Pattern Matching in Groovy (Regular Expressions)
Groovy তে প্যাটার্ন মেচিং সাধারণত regular expressions (regex) ব্যবহার করে করা হয়। Groovy তে ==~ এবং =~ অপারেটরগুলি ব্যবহার করা হয় প্যাটার্ন মেচিং এর জন্য।
Pattern Matching with ==~ Operator
এই অপারেটরটি একটি স্ট্রিং এবং regex এর মধ্যে মেচিং পরীক্ষা করে এবং এটি true অথবা false রিটার্ন করে।
উদাহরণ (Pattern Matching with ==~):
def text = "Hello, Groovy!"
// যদি স্ট্রিংটি প্যাটার্নের সাথে মেলে
def match = text ==~ /.*Groovy.*/
println match // Output: trueএখানে /.*Groovy.*/ হলো একটি regular expression যা "Groovy" শব্দটি যে কোনো স্থানে থাকতে পারে এমন স্ট্রিং চেক করে।
Pattern Matching with =~ Operator (Matcher)
=~ অপারেটরটি একটি matcher তৈরি করে যা স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচিংয়ের জন্য ব্যবহৃত হয় এবং এটি প্যাটার্ন মেচিংয়ের সব ম্যাচের একটি Matcher অবজেক্ট প্রদান করে।
উদাহরণ (Pattern Matching with =~):
def text = "Hello, Groovy! Welcome to Groovy World"
// matcher তৈরি করে প্যাটার্ন মেচিং
def matcher = text =~ /Groovy/
println matcher // Output: [Groovy, Groovy]
println matcher.size() // Output: 2 (Groovy শব্দটি দুটি বার এসেছে)এখানে matcher আমাদের স্ট্রিং text এর মধ্যে "Groovy" শব্দটি খুঁজে বের করছে এবং এর সব ম্যাচ প্রদর্শন করছে।
Pattern Matching with Capture Groups
Capture groups ব্যবহার করে আপনি regex প্যাটার্নের অংশবিশেষ বের করতে পারেন। Groovy capture groups সাপোর্ট করে, যার মাধ্যমে স্ট্রিংয়ের অংশ বিশেষ মিলে গেলে আপনি তা ক্যাপচার করতে পারেন।
def text = "John's age is 25"
// Capture group দিয়ে নাম এবং বয়স বের করা
def matcher = (text =~ /(\w+)'s age is (\d+)/)
println "Name: ${matcher[0][0]}" // Output: Name: John's
println "Age: ${matcher[0][1]}" // Output: Age: 25এখানে, আমরা (\\w+) এর মাধ্যমে নাম এবং (\\d+) এর মাধ্যমে বয়সকে ক্যাপচার করেছি।
2. String Searching in Groovy
Groovy তে স্ট্রিং খোঁজার জন্য কিছু built-in মেথড রয়েছে। Groovy এর স্ট্রিং ক্লাসের সাহায্যে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা উপাদান খুঁজে বের করতে পারেন।
contains মেথড:
Groovy তে contains মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট সাবস্ট্রিং খুঁজে দেখতে পারেন।
def text = "Groovy is awesome"
// স্ট্রিংয়ে "Groovy" শব্দটি আছে কি না চেক করা
if (text.contains("Groovy")) {
println "Found 'Groovy'!" // Output: Found 'Groovy'!
}indexOf মেথড:
indexOf মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের মধ্যে কোনো নির্দিষ্ট সাবস্ট্রিংয়ের প্রথম অবস্থান খুঁজে পেতে পারেন। এটি যদি স্ট্রিংটি না পায় তবে -1 রিটার্ন করে।
def text = "Groovy is awesome"
def index = text.indexOf("awesome")
println index // Output: 12এখানে, awesome শব্দটি text স্ট্রিংয়ের 12 তম অবস্থানে রয়েছে।
find মেথড:
Groovy তে find মেথড ব্যবহার করে আপনি একটি প্যাটার্নের প্রথম ম্যাচ বের করতে পারেন। এটি regex প্যাটার্নের সাথে প্রথম ম্যাচের উপাদান রিটার্ন করবে।
def text = "Groovy is awesome"
// প্রথম ম্যাচ খুঁজে বের করা
def match = text.find(/\b\w{6}\b/)
println match // Output: Groovyএখানে, \b\w{6}\b প্যাটার্নটি প্রথম ৬ অক্ষরের শব্দ (যেমন "Groovy") খুঁজে বের করছে।
findAll মেথড:
findAll মেথড ব্যবহার করে আপনি একটি স্ট্রিংয়ের সব প্যাটার্ন মেলানো উপাদান খুঁজে বের করতে পারেন।
def text = "Groovy is awesome, Groovy is fun"
// সব "Groovy" শব্দ খুঁজে বের করা
def matches = text.findAll(/Groovy/)
println matches // Output: [Groovy, Groovy]এখানে, findAll সব "Groovy" শব্দের ম্যাচ পেয়ে একটি তালিকা রিটার্ন করেছে।
3. Regular Expression (Regex) মেথডসমূহ
Groovy তে স্ট্রিংয়ের সাথে কাজ করার জন্য আরও কিছু regex মেথড রয়েছে, যেমন:
replaceAll: একটি প্যাটার্ন ম্যাচ করার পর সেটি রিপ্লেস করতে ব্যবহৃত হয়।matches: পুরো স্ট্রিংয়ের সাথে regex প্যাটার্ন মেলে কিনা চেক করতে ব্যবহৃত হয়।
replaceAll মেথড:
def text = "Groovy is awesome"
def newText = text.replaceAll("awesome", "fantastic")
println newText // Output: Groovy is fantasticmatches মেথড:
def text = "Groovy"
def isMatch = text.matches("Groovy")
println isMatch // Output: trueএখানে, matches মেথড পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলিয়ে চেক করছে।
সারসংক্ষেপ
- Pattern Matching: Groovy তে regex এর মাধ্যমে প্যাটার্ন মেচিং করা খুবই সহজ।
==~এবং=~অপারেটরগুলি ব্যবহার করে স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচ করা যায়। - String Searching: Groovy তে স্ট্রিং খোঁজা সহজ, এবং
contains,indexOf,find,findAllমেথডগুলি ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে পেতে পারেন। - Regex Utility: Groovy তে
replaceAllএবংmatchesমেথড ব্যবহার করে আপনি স্ট্রিংয়ের নির্দিষ্ট অংশ পরিবর্তন বা পুরো স্ট্রিং ম্যাচ করতে পারেন।
Groovy তে Pattern Matching এবং String Searching শক্তিশালী, দ্রুত এবং নমনীয়ভাবে কাজ করতে সহায়তা করে, যা কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের জন্য এটি আরও ব্যবহারযোগ্য করে তোলে।
Read more