Groovy তে Pattern Matching এবং String Searching অত্যন্ত শক্তিশালী এবং কার্যকরী কৌশল। Groovy বিভিন্ন built-in মেথড এবং regular expressions (regex) ব্যবহার করে স্ট্রিংগুলির মধ্যে প্যাটার্ন খোঁজা, মিলানো এবং প্রক্রিয়াকরণ করতে সহায়তা করে। এখানে আমরা Groovy তে Pattern Matching এবং String Searching এর ব্যবহারের কিছু সাধারণ পদ্ধতি আলোচনা করবো।
Groovy তে প্যাটার্ন মেচিং সাধারণত regular expressions (regex) ব্যবহার করে করা হয়। Groovy তে ==~
এবং =~
অপারেটরগুলি ব্যবহার করা হয় প্যাটার্ন মেচিং এর জন্য।
==~
Operatorএই অপারেটরটি একটি স্ট্রিং এবং regex এর মধ্যে মেচিং পরীক্ষা করে এবং এটি true
অথবা false
রিটার্ন করে।
==~
):def text = "Hello, Groovy!"
// যদি স্ট্রিংটি প্যাটার্নের সাথে মেলে
def match = text ==~ /.*Groovy.*/
println match // Output: true
এখানে /.*Groovy.*/
হলো একটি regular expression যা "Groovy" শব্দটি যে কোনো স্থানে থাকতে পারে এমন স্ট্রিং চেক করে।
=~
Operator (Matcher)=~
অপারেটরটি একটি matcher তৈরি করে যা স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচিংয়ের জন্য ব্যবহৃত হয় এবং এটি প্যাটার্ন মেচিংয়ের সব ম্যাচের একটি Matcher অবজেক্ট প্রদান করে।
=~
):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" শব্দটি খুঁজে বের করছে এবং এর সব ম্যাচ প্রদর্শন করছে।
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+)
এর মাধ্যমে বয়সকে ক্যাপচার করেছি।
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" শব্দের ম্যাচ পেয়ে একটি তালিকা রিটার্ন করেছে।
Groovy তে স্ট্রিংয়ের সাথে কাজ করার জন্য আরও কিছু regex মেথড রয়েছে, যেমন:
replaceAll
: একটি প্যাটার্ন ম্যাচ করার পর সেটি রিপ্লেস করতে ব্যবহৃত হয়।matches
: পুরো স্ট্রিংয়ের সাথে regex প্যাটার্ন মেলে কিনা চেক করতে ব্যবহৃত হয়।replaceAll
মেথড:def text = "Groovy is awesome"
def newText = text.replaceAll("awesome", "fantastic")
println newText // Output: Groovy is fantastic
matches
মেথড:def text = "Groovy"
def isMatch = text.matches("Groovy")
println isMatch // Output: true
এখানে, matches
মেথড পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলিয়ে চেক করছে।
==~
এবং =~
অপারেটরগুলি ব্যবহার করে স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচ করা যায়।contains
, indexOf
, find
, findAll
মেথডগুলি ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে পেতে পারেন।replaceAll
এবং matches
মেথড ব্যবহার করে আপনি স্ট্রিংয়ের নির্দিষ্ট অংশ পরিবর্তন বা পুরো স্ট্রিং ম্যাচ করতে পারেন।Groovy তে Pattern Matching এবং String Searching শক্তিশালী, দ্রুত এবং নমনীয়ভাবে কাজ করতে সহায়তা করে, যা কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের জন্য এটি আরও ব্যবহারযোগ্য করে তোলে।
common.read_more