Strings এবং Regular Expressions (স্ট্রিং এবং রেগুলার এক্সপ্রেশন)

Computer Programming - গ্রুভি (Groovy)
201
201

স্ট্রিং এবং রেগুলার এক্সপ্রেশন (Strings and Regular Expressions in Groovy)

Groovy তে স্ট্রিংস (Strings) এবং রেগুলার এক্সপ্রেশন (Regular Expressions) খুবই গুরুত্বপূর্ণ এবং শক্তিশালী টুল। Groovy স্ট্রিং হ্যান্ডলিং এবং টেক্সট প্রোসেসিংয়ের জন্য অনেক সুবিধাজনক এবং সহজ টুলস প্রদান করে, যেমন স্ট্রিং ইন্টারপোলেশন এবং রেগুলার এক্সপ্রেশন নিয়ে কাজ করা।


1. স্ট্রিং (Strings)

Groovy তে স্ট্রিংস খুবই গুরুত্বপূর্ণ ডেটা টাইপ, যা টেক্সট বা চরিত্রের সিকোয়েন্স সংরক্ষণ করতে ব্যবহৃত হয়। Groovy তে স্ট্রিং ব্যবহারের জন্য কিছু সুবিধাজনক বৈশিষ্ট্য রয়েছে, যেমন স্ট্রিং ইন্টারপোলেশন, মাল্টিলাইন স্ট্রিং ইত্যাদি।

1.1 স্ট্রিং ডিফাইন করা

Groovy তে স্ট্রিং সাধারণত ডাবল কোটস (" ") দিয়ে সংজ্ঞায়িত করা হয়।

def greeting = "Hello, Groovy!"
println greeting  // Output: Hello, Groovy!

এছাড়া, একক কোটস (' ') দিয়েও স্ট্রিং ডিফাইন করা যায়, তবে একক কোটস ব্যবহার করলে ইন্টারপোলেশন করা যায় না।

def message = 'Welcome to Groovy'
println message  // Output: Welcome to Groovy

1.2 স্ট্রিং ইন্টারপোলেশন

Groovy তে স্ট্রিং ইন্টারপোলেশন খুব সহজ, যার মাধ্যমে আপনি সরাসরি স্ট্রিংয়ের মধ্যে ভেরিয়েবল ব্যবহার করতে পারেন।

def name = "John"
def message = "Hello, $name!"
println message  // Output: Hello, John!

এখানে $name ভেরিয়েবলটি স্ট্রিংয়ের মধ্যে সরাসরি যোগ হয়ে যায় এবং এটি আউটপুট হিসেবে Hello, John! প্রদান করে।

1.3 মাল্টিলাইন স্ট্রিং

Groovy তে মাল্টিলাইন স্ট্রিং তৈরি করতে তিনটি ডাবল কোটস (""" """) ব্যবহার করা হয়।

def multilineString = """This is a
multiline
string in Groovy."""
println multilineString

এখানে, """ """ ব্যবহার করে মাল্টিলাইন স্ট্রিং তৈরি করা হয়েছে।

1.4 স্ট্রিং মেথডস

Groovy তে স্ট্রিং এর উপরে বিভিন্ন মেথড কাজ করে। কিছু সাধারণ স্ট্রিং মেথডের মধ্যে রয়েছে:

  • toUpperCase(): স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তরিত করে।

    def name = "groovy"
    println name.toUpperCase()  // Output: GROOVY
  • toLowerCase(): স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তরিত করে।

    def name = "GROOVY"
    println name.toLowerCase()  // Output: groovy
  • substring(): স্ট্রিংয়ের নির্দিষ্ট অংশ নেয়।

    def name = "Groovy"
    println name.substring(0, 3)  // Output: Gro
  • replace(): স্ট্রিংয়ের নির্দিষ্ট অংশ প্রতিস্থাপন করে।

    def name = "Hello, John!"
    println name.replace("John", "Groovy")  // Output: Hello, Groovy!

2. রেগুলার এক্সপ্রেশন (Regular Expressions)

রেগুলার এক্সপ্রেশন (RegEx) একটি শক্তিশালী টুল যা টেক্সট প্যাটার্ন ম্যাচিং এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। Groovy তে রেগুলার এক্সপ্রেশন ব্যবহার করা অত্যন্ত সহজ এবং এটি Java এর রেগুলার এক্সপ্রেশন লাইব্রেরি ব্যবহার করে কাজ করে।

2.1 রেগুলার এক্সপ্রেশন তৈরি করা

Groovy তে রেগুলার এক্সপ্রেশন তৈরি করতে আপনি / দিয়ে প্যাটার্ন লিখতে পারেন।

def pattern = /[a-zA-Z]+/

এখানে, /[a-zA-Z]+/ একটি রেগুলার এক্সপ্রেশন যা একটি বা একাধিক ইংরেজি অক্ষর খুঁজে পাবে।

2.2 matches() মেথড ব্যবহার করা

matches() মেথড ব্যবহার করে একটি স্ট্রিং রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মেলে কিনা তা চেক করা যায়।

def text = "Hello123"
def pattern = /[a-zA-Z]+/
println text.matches(pattern)  // Output: false

এখানে, matches() মেথড চেক করে যে text স্ট্রিংটি শুধুমাত্র ইংরেজি অক্ষর (বড় বা ছোট) দিয়ে গঠিত কিনা। এর মানে, "Hello123" এ ডিজিট থাকার কারণে এটি মেলে না।

2.3 find() মেথড ব্যবহার করা

find() মেথড একটি স্ট্রিংয়ে রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মিল পাওয়া প্রথম অংশটি খুঁজে বের করে।

def text = "abc 123 xyz"
def pattern = /\d+/
def match = text.find(pattern)
println match  // Output: 123

এখানে, find() মেথড সংখ্যার সিকোয়েন্স (\d+) খুঁজে বের করেছে, যা "123"

2.4 replaceAll() মেথড ব্যবহার করা

replaceAll() মেথড ব্যবহার করে রেগুলার এক্সপ্রেশন মিলে এমন অংশগুলো প্রতিস্থাপন করা যায়।

def text = "Hello 123, Hello 456"
def pattern = /\d+/
def replacedText = text.replaceAll(pattern, "XYZ")
println replacedText  // Output: Hello XYZ, Hello XYZ

এখানে, সমস্ত সংখ্যাকে "XYZ" দ্বারা প্রতিস্থাপন করা হয়েছে।

2.5 রেগুলার এক্সপ্রেশন ভেরিয়েবল হিসেবে ব্যবহার

Groovy তে আপনি রেগুলার এক্সপ্রেশন প্যাটার্ন সরাসরি ভেরিয়েবল হিসেবে ব্যবহার করতে পারেন এবং এটি খুবই কার্যকরী।

def pattern = ~/^\d{3}-\d{2}-\d{4}$/
def ssn = "123-45-6789"
println ssn ==~ pattern  // Output: true

এখানে, ==~ চেক করে যে ssn ভেরিয়েবলটি নির্দিষ্ট রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে মেলে কিনা।


3. রেগুলার এক্সপ্রেশন এর কিছু সাধারণ প্যাটার্ন

  • [abc]: 'a', 'b', অথবা 'c' এর মধ্যে যেকোনো একটি চরিত্র।
  • [^abc]: 'a', 'b', অথবা 'c' ছাড়া অন্য যেকোনো একটি চরিত্র।
  • [a-z]: একক ছোট হাতের অক্ষর।
  • [A-Z]: একক বড় হাতের অক্ষর।
  • \d: একটি ডিজিট (০-৯)।
  • \D: একটি নন-ডিজিট।
  • \w: একটি শব্দের অক্ষর (a-z, A-Z, ০-৯, _)
  • \W: একটি নন-শব্দ চরিত্র।
  • \s: সাদা স্থান (space, tab, newline)
  • \S: সাদা স্থান ছাড়া অন্য কোন চরিত্র।

সারসংক্ষেপ

Groovy তে স্ট্রিংস এবং রেগুলার এক্সপ্রেশন খুবই গুরুত্বপূর্ণ। স্ট্রিং ইন্টারপোলেশন, মাল্টিলাইন স্ট্রিং এবং স্ট্রিং মেথডস কোড লেখাকে আরও সহজ এবং পরিষ্কার করে তোলে। অন্যদিকে, রেগুলার এক্সপ্রেশন একটি অত্যন্ত শক্তিশালী টুল যা টেক্সট প্রোসেসিং এবং প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয়। Groovy তে রেগুলার এক্সপ্রেশন ব্যবহার করা সহজ এবং কার্যকরী, এবং এটি বিভিন্ন টেক্সট ডেটা নিয়ে কাজ করতে সহায়ক।

common.content_added_by

Groovy এ Strings এবং GStrings এর ধারণা

237
237

Groovy তে Strings এবং GStrings এর ধারণা

Groovy তে String এবং GString (Groovy String) এর ধারণা রয়েছে, যা Java এর তুলনায় কিছু অতিরিক্ত সুবিধা প্রদান করে। সাধারণভাবে, Groovy তে স্ট্রিং কাজের জন্য String ব্যবহার করা হয়, এবং GString হলো একটি বিশেষ ধরনের স্ট্রিং যা স্ট্রিং ইন্টারপোলেশন সমর্থন করে, অর্থাৎ এটি স্ট্রিং এর মধ্যে ভেরিয়েবল বা এক্সপ্রেশন অন্তর্ভুক্ত করতে দেয়।


1. Strings

Groovy তে String হলো Immutable, অর্থাৎ একবার তৈরি হলে এটি পরিবর্তন করা যায় না। Groovy তে String তৈরি করার জন্য সাধারণত ' ' (single quotes) বা " " (double quotes) ব্যবহার করা হয়।

String ডিক্লারেশন:

def singleQuoteString = 'Hello, Groovy!'
def doubleQuoteString = "Hello, Groovy!"
println singleQuoteString  // Output: Hello, Groovy!
println doubleQuoteString  // Output: Hello, Groovy!

বৈশিষ্ট্য:

  • Immutable: String একবার তৈরি হলে পরিবর্তন করা যায় না।
  • সাধারণ স্ট্রিং ম্যানিপুলেশন: Groovy তে স্ট্রিং ম্যানিপুলেশন এবং কনক্যাটেনেশন সহজেই করা যায়।

স্ট্রিং কনক্যাটেনেশন:

def part1 = "Hello"
def part2 = "Groovy"
def fullString = part1 + ", " + part2 + "!"
println fullString  // Output: Hello, Groovy!

2. GStrings

GString (Groovy String) হলো Groovy তে একটি বিশেষ ধরনের স্ট্রিং, যা স্ট্রিং ইন্টারপোলেশন সমর্থন করে। GString এ ডাবল কোটসের (" ") ভেতরে $ চিহ্ন ব্যবহার করে ভেরিয়েবল বা এক্সপ্রেশন ব্যবহার করা যায়। GString এর সাহায্যে সহজেই স্ট্রিং এর মধ্যে ভেরিয়েবল অন্তর্ভুক্ত করা সম্ভব, যা Java তে নেই।

GString ডিক্লারেশন এবং স্ট্রিং ইন্টারপোলেশন:

def name = "Groovy"
def greeting = "Hello, $name!"  // $name একটি GString
println greeting  // Output: Hello, Groovy!

এক্সপ্রেশন ইন্টারপোলেশন:

GString এ $ চিহ্ন ব্যবহার করে শুধু ভেরিয়েবলই নয়, যেকোনো এক্সপ্রেশনও অন্তর্ভুক্ত করা যায়।

def num = 10
def result = "The square of $num is ${num * num}."
println result  // Output: The square of 10 is 100.

বৈশিষ্ট্য:

  • স্ট্রিং ইন্টারপোলেশন সমর্থন: GString এ $ ব্যবহার করে ভেরিয়েবল বা এক্সপ্রেশন যোগ করা যায়।
  • ডাইনামিকভাবে স্ট্রিং তৈরি: GString এ ভেরিয়েবল বা এক্সপ্রেশন পরিবর্তন করলে স্ট্রিং নিজেই পরিবর্তিত হয়।

3. Strings এবং GStrings এর মধ্যে পার্থক্য

বৈশিষ্ট্যStringGString
ইন্টারপোলেশনইন্টারপোলেশন সমর্থন করে নাইন্টারপোলেশন সমর্থন করে
ডিক্লারেশন' ' বা " " (single or double)শুধুমাত্র " " (double quotes)
ডাইনামিক পরিবর্তনImmutableDynamic - ভেরিয়েবল পরিবর্তিত হলে স্ট্রিং আপডেট হয়

উদাহরণ:

def name = "John"
def normalString = 'Hello, $name!'  // এটি একটি সাধারণ String
def groovyString = "Hello, $name!"  // এটি একটি GString

println normalString   // Output: Hello, $name!
println groovyString   // Output: Hello, John

পার্থক্য: single quotes দিয়ে তৈরি স্ট্রিং সাধারণ String হিসেবে গণ্য হয় এবং $name ইন্টারপোলেট করা হয় না। কিন্তু double quotes দিয়ে তৈরি GString এর মধ্যে $name ইন্টারপোলেট হয় এবং $name এর মান John হিসাবে প্রতিস্থাপিত হয়।


4. GString এর প্রয়োগ ক্ষেত্র

GString ব্যবহার করার মাধ্যমে স্ট্রিং এ ভেরিয়েবল এবং এক্সপ্রেশন যোগ করা সহজ হয়। এটি ডাইনামিক স্ট্রিং তৈরি করতে অত্যন্ত কার্যকরী এবং স্ট্রিং ম্যানিপুলেশনকে সহজ করে তোলে। উদাহরণস্বরূপ, যদি কোনো মেসেজ বা রিপোর্ট তৈরি করতে হয় যেখানে ভেরিয়েবল পরিবর্তিত হতে পারে, তখন GString ব্যবহার করা সুবিধাজনক।

def item = "laptop"
def price = 1200
def message = "The price of the $item is $${price}."
println message  // Output: The price of the laptop is $1200.

সারসংক্ষেপ:

Groovy তে Strings এবং GStrings এর মধ্যে মূল পার্থক্য হলো GStrings স্ট্রিং ইন্টারপোলেশন সমর্থন করে, যেখানে ভেরিয়েবল বা এক্সপ্রেশনকে সরাসরি স্ট্রিং এর মধ্যে অন্তর্ভুক্ত করা যায়। String গুলি Immutable, কিন্তু GString ডাইনামিক্যালি পরিবর্তনশীল এবং স্ট্রিং ম্যানিপুলেশনকে আরও সহজ করে তোলে।

common.content_added_by

String Interpolation এবং Multiline Strings

253
253

Groovy তে String Interpolation এবং Multiline Strings ব্যবহৃত হয় স্ট্রিং পরিচালনা (String Manipulation) এর ক্ষেত্রে। এগুলি কোড লেখার সময় স্ট্রিং তৈরি এবং ফরম্যাট করার প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। Groovy তে স্ট্রিংয়ের মান প্রবাহ (dynamic values) যুক্ত করা এবং একাধিক লাইনে স্ট্রিং লেখা খুবই সহজ।


১. String Interpolation (স্ট্রিং ইন্টারপোলেশন)

String Interpolation হল এমন একটি প্রক্রিয়া যার মাধ্যমে স্ট্রিংয়ের মধ্যে ভেরিয়েবল বা এক্সপ্রেশন যোগ করা হয়। Groovy তে এটি সহজে করা যায়। Groovy তে স্ট্রিং ইন্টারপোলেশনের জন্য double quotes (" ") ব্যবহার করা হয়।

String Interpolation এর সিংহভাগ সুবিধা:

  • স্ট্রিংয়ের মধ্যে ভেরিয়েবল বা এক্সপ্রেশন সহজে একত্রিত করা যায়।
  • কোড আরও পরিষ্কার এবং পাঠযোগ্য হয়।

স্ট্রিং ইন্টারপোলেশন এর উদাহরণ:

def name = "Alice"
def age = 25

// স্ট্রিং ইন্টারপোলেশন
println "Hello, my name is $name and I am $age years old."

আউটপুট:

Hello, my name is Alice and I am 25 years old.

এখানে, $name এবং $age ভেরিয়েবলগুলো স্ট্রিংয়ের মধ্যে ইন্টারপোলেট (insert) করা হয়েছে।

আরও উদাহরণ:

def x = 10
def y = 5

// এক্সপ্রেশন ইন্টারপোলেশন
println "The sum of $x and $y is ${x + y}."

আউটপুট:

The sum of 10 and 5 is 15.

এখানে, ${x + y} এর মাধ্যমে একটি এক্সপ্রেশনকে স্ট্রিংয়ের মধ্যে অন্তর্ভুক্ত করা হয়েছে। ${} ব্যবহার করা হয় যখন এক্সপ্রেশন বা গাণিতিক অপারেশন করতে হয়।


২. Multiline Strings (একাধিক লাইনের স্ট্রিং)

Groovy তে multiline strings ব্যবহার করতে খুবই সহজ এবং সরল উপায় রয়েছে। আপনি একাধিক লাইনে স্ট্রিং লেখার জন্য triple double quotes (""") বা triple single quotes (''') ব্যবহার করতে পারেন।

Multiline Strings এর উদাহরণ:

def multilineString = """This is a multiline string.
It can span across multiple lines
without needing special concatenation."""
println multilineString

আউটপুট:

This is a multiline string.
It can span across multiple lines
without needing special concatenation.

এখানে, """ দিয়ে স্ট্রিং শুরু এবং শেষ করা হয়েছে, যা একাধিক লাইনে স্ট্রিং লেখার সুবিধা দেয়।

Multiline Strings with Embedded Interpolation:

Groovy তে multiline strings এর মধ্যে string interpolation ব্যবহার করা সম্ভব।

def name = "Alice"
def multilineString = """Hello, $name!
This is a multiline string.
It can span across multiple lines."""
println multilineString

আউটপুট:

Hello, Alice!
This is a multiline string.
It can span across multiple lines.

এখানে, $name ভেরিয়েবলটি স্ট্রিংয়ের মধ্যে ইন্টারপোলেট করা হয়েছে।

Multiline Strings with Leading and Trailing Whitespace:

Groovy তে multiline strings এর মধ্যে যদি leading বা trailing whitespace থাকে, তবে তা সরানো যেতে পারে।

def multilineString = ''' 
    This is a multiline string.
    Leading spaces are included, 
    but we can remove them using stripMargin().
'''
println multilineString.stripMargin()

আউটপুট:

This is a multiline string.
Leading spaces are included,
but we can remove them using stripMargin().

এখানে, .stripMargin() মেথড ব্যবহার করে স্ট্রিংয়ের মার্জিন (leading spaces) সরিয়ে ফেলা হয়েছে। আপনি মার্জিন চিহ্ন হিসাবে | বা অন্য কিছু ব্যবহার করতে পারেন।


সারাংশ

  • String Interpolation: Groovy তে স্ট্রিংয়ের মধ্যে ভেরিয়েবল বা এক্সপ্রেশন যোগ করার জন্য "$variable" বা ${expression} ব্যবহার করা হয়। এটি কোড লেখাকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে।
  • Multiline Strings: Groovy তে একাধিক লাইনে স্ট্রিং লেখার জন্য """ বা ''' ব্যবহার করা হয়। এতে দীর্ঘ স্ট্রিং লিখতে সুবিধা হয়, এবং স্ট্রিং ইন্টারপোলেশনও সম্ভব হয়।
common.content_added_by

Regular Expressions এর মৌলিক ধারণা

186
186

Regular Expressions এর মৌলিক ধারণা

Regular Expressions (RegEx) একটি শক্তিশালী টুল যা টেক্সটের মধ্যে প্যাটার্ন খুঁজে বের করতে, মিলিয়ে দেখতে এবং টেক্সটকে ম্যানিপুলেট করতে ব্যবহৃত হয়। এটি একটি বিশেষ ভাষা যা স্ট্রিং প্যাটার্নগুলি বর্ণনা করতে ব্যবহৃত হয় এবং আপনি যেকোনো ধরনের টেক্সট সনাক্ত করতে, পরিবর্তন করতে বা যাচাই করতে এই প্যাটার্নগুলি ব্যবহার করতে পারেন।

Regular Expressions এর ব্যবহার

RegEx সাধারণত ব্যবহৃত হয়:

  • টেক্সট সন্নিবেশ বা খোঁজা: যেমন কোন নির্দিষ্ট শব্দ, সংখ্যা বা টেক্সট প্যাটার্ন খুঁজে বের করা।
  • টেক্সট পরিবর্তন: যেমন টেক্সটের নির্দিষ্ট অংশ পরিবর্তন করা বা মুছে ফেলা।
  • টেক্সট যাচাই: যেমন ইউজারের ইনপুট যাচাই করা, ইমেইল ঠিকানা বা ফোন নম্বরের ফরম্যাট সঠিক কিনা তা চেক করা।

RegEx এর মৌলিক উপাদানসমূহ

  1. লিটারেল ক্যারেকটারস (Literal Characters):
    একটি RegEx একটি স্ট্রিং বা চরিত্রের প্যাটার্ন হিসেবে কাজ করে। সাধারণ ক্যারেকটার যেমন: a, b, 1, @, % ইত্যাদি লিটারেল ক্যারেকটার হিসেবে কাজ করে।
    • উদাহরণ: RegEx apple শুধুমাত্র "apple" এই শব্দকে মিলাবে।
  2. মেটাচর (Meta-characters):
    RegEx এ কিছু বিশেষ চরিত্র থাকে যেগুলি বিভিন্ন কাজের জন্য ব্যবহৃত হয়। এগুলিকে মেটাচর বলা হয়। সবচেয়ে সাধারণ মেটাচরগুলো হলো:
    • . (Dot): যেকোনো একক চরিত্রের সাথে মিলে।
      • উদাহরণ: a.c যেকোনো string এর মধ্যে "a", যেকোনো এক ক্যারেকটার এবং "c" এর সাথে মিলবে, যেমন "abc", "axc", "a9c" ইত্যাদি।
    • ^ (Caret): স্ট্রিংয়ের শুরুর সাথে মিলবে।
      • উদাহরণ: ^abc শুধুমাত্র এমন স্ট্রিং এর সাথে মিলে যা "abc" দিয়ে শুরু হয়, যেমন "abc123"
    • $ (Dollar Sign): স্ট্রিংয়ের শেষে মিলবে।
      • উদাহরণ: abc$ শুধুমাত্র এমন স্ট্রিং এর সাথে মিলে যা "abc" দিয়ে শেষ হয়, যেমন "123abc"
    • [] (Square Brackets): কোনো নির্দিষ্ট চরিত্রের এক বা একাধিক অপশন।
      • উদাহরণ: [aeiou] যেকোনো একটি vowel এর সাথে মিলবে। "a", "e", "i" ইত্যাদি।
    • | (Pipe or OR): দুটি বা ততোধিক প্যাটার্নের মধ্যে কোন একটি মিললে কাজ করবে।
      • উদাহরণ: cat|dog যেকোনো "cat" অথবা "dog" শব্দের সাথে মিলে।
    • * (Asterisk): পূর্ববর্তী চরিত্রটি শূন্য বা তার বেশি বার রিপিট হতে পারে।
      • উদাহরণ: a* যেকোনো স্ট্রিং এর মধ্যে শূন্য বা একাধিক "a" এর সাথে মিলবে, যেমন "aaa", "a", বা "" (শূন্য)।
    • + (Plus): পূর্ববর্তী চরিত্রটি এক বা একাধিক বার রিপিট হতে পারে।
      • উদাহরণ: a+ যেকোনো স্ট্রিং এর মধ্যে এক বা একাধিক "a" এর সাথে মিলবে, যেমন "a", "aa", "aaa"
    • ? (Question Mark): পূর্ববর্তী চরিত্রটি এক বা শূন্য বার রিপিট হতে পারে।
      • উদাহরণ: a? যেকোনো স্ট্রিং এর মধ্যে এক বা শূন্য "a" এর সাথে মিলবে, যেমন "a" বা "" (শূন্য)।
  3. কোয়ারেন্টাস (Quantifiers):
    Quantifiers দ্বারা আমরা স্ট্রিংয়ের মধ্যে চরিত্রের সংখ্যা নির্দিষ্ট করতে পারি।
    • {n}: ঠিক n বার রিপিট হওয়া।
      • উদাহরণ: a{3} এর মানে হচ্ছে ঠিক তিনটি "a" এর সাথে মিলবে, যেমন "aaa"
    • {n,}: কমপক্ষে n বার রিপিট হওয়া।
      • উদাহরণ: a{2,} এর মানে হচ্ছে দুই বা তার বেশি "a" এর সাথে মিলবে, যেমন "aa", "aaa"
    • {n,m}: n থেকে m বার রিপিট হওয়া।
      • উদাহরণ: a{2,4} এর মানে হচ্ছে দুই থেকে চারটি "a" এর মধ্যে মিলবে, যেমন "aa", "aaa", "aaaa"
  4. Escape Characters:
    যদি আপনি মেটাচর ব্যবহার করতে চান কিন্তু এটি লিটারেল ক্যারেক্টার হিসেবে ব্যবহার করতে চান, তাহলে আপনাকে backslash \ ব্যবহার করতে হবে।
    • উদাহরণ: \. এটা একটি ডট চরিত্র হিসাবে কাজ করবে, যাতে .com এর মতো শব্দের মধ্যে ডট মিলানো যায়।

RegEx এর ব্যবহার উদাহরণ

  1. ইমেইল ঠিকানা যাচাই করা:
    একটি সাধারণ RegEx ব্যবহার করে একটি বৈধ ইমেইল ঠিকানা যাচাই করা।

    def emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
    def email = "example@example.com"
    
    if (email =~ emailPattern) {
        println "Valid email address."
    } else {
        println "Invalid email address."
    }

    এখানে, RegEx প্যাটার্নটি একটি বৈধ ইমেইল ঠিকানার জন্য নির্ধারিত ফরম্যাট চেক করে।

  2. নাম পরীক্ষা করা:
    RegEx ব্যবহার করে আপনি নামের মধ্যে শুধুমাত্র অক্ষর এবং স্পেস থাকতে পারে এমন নিয়ম নির্ধারণ করতে পারেন।

    def namePattern = /^[a-zA-Z\s]+$/
    def name = "John Doe"
    
    if (name =~ namePattern) {
        println "Valid name."
    } else {
        println "Invalid name."
    }

    এখানে, ^[a-zA-Z\s]+$ প্যাটার্নটি শুধুমাত্র অক্ষর এবং স্পেসের মধ্যে মিলবে।


সারসংক্ষেপ

  • Regular Expressions একটি বিশেষ ভাষা যা টেক্সটের প্যাটার্ন খুঁজে বের করতে এবং কাজ করতে ব্যবহৃত হয়।
  • এটি সাধারণভাবে matching, searching, replacing, এবং validating এর জন্য ব্যবহৃত হয়।
  • RegEx এ বিভিন্ন মেটাচর, quantifiers, এবং escape sequences ব্যবহার করে প্যাটার্ন তৈরি করা যায়।
  • Groovy তে =~ অপারেটর ব্যবহার করে RegEx এর সাথে স্ট্রিং মিলানো যায় এবং এটি একটি শক্তিশালী টুল হিসেবে কাজ করে টেক্সট ম্যানিপুলেশন এবং যাচাইয়ের জন্য।
common.content_added_by

Pattern Matching এবং String Searching

176
176

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 fantastic

matches মেথড:

def text = "Groovy"

def isMatch = text.matches("Groovy")
println isMatch  // Output: true

এখানে, matches মেথড পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলিয়ে চেক করছে।


সারসংক্ষেপ

  1. Pattern Matching: Groovy তে regex এর মাধ্যমে প্যাটার্ন মেচিং করা খুবই সহজ। ==~ এবং =~ অপারেটরগুলি ব্যবহার করে স্ট্রিংয়ের মধ্যে প্যাটার্ন মেচ করা যায়।
  2. String Searching: Groovy তে স্ট্রিং খোঁজা সহজ, এবং contains, indexOf, find, findAll মেথডগুলি ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে পেতে পারেন।
  3. Regex Utility: Groovy তে replaceAll এবং matches মেথড ব্যবহার করে আপনি স্ট্রিংয়ের নির্দিষ্ট অংশ পরিবর্তন বা পুরো স্ট্রিং ম্যাচ করতে পারেন।

Groovy তে Pattern Matching এবং String Searching শক্তিশালী, দ্রুত এবং নমনীয়ভাবে কাজ করতে সহায়তা করে, যা কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের জন্য এটি আরও ব্যবহারযোগ্য করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion