Skill

জাভা রেজেক্স (Java Regex)

379

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


Java Regex: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

Regex (Regular Expression) হলো একটি প্যাটার্ন, যা টেক্সট (স্ট্রিং) অনুসন্ধান, মিলে যাওয়া এবং মডিফিকেশন করার জন্য ব্যবহার করা হয়। Java তে Regex ব্যবহার করে আপনি টেক্সট থেকে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে, মিলে যাওয়া টেক্সটকে পরিবর্তন করতে, বা ভ্যালিডেশন করতে পারেন। Regex টুল ব্যবহার করে প্রোগ্রামিং এ একাধিক কাজ খুব দ্রুত এবং কার্যকরীভাবে সম্পন্ন করা যায়।

Java তে Regex ব্যবহারের জন্য প্রধানত java.util.regex প্যাকেজ ব্যবহার করা হয়। এই প্যাকেজের মধ্যে দুটি প্রধান ক্লাস রয়েছে:

  1. Pattern: এটি একটি কম্পাইলড রেজেক্স প্যাটার্ন তৈরি করে।
  2. Matcher: এটি একটি Pattern ব্যবহার করে টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করে।

Regex এর মূল উপাদানসমূহ

Regex মূলত কিছু বিশেষ ক্যারেক্টার এবং মেটাচারেক্টার নিয়ে গঠিত, যা টেক্সটের নির্দিষ্ট প্যাটার্ন বর্ণনা করে। নিচে কিছু গুরুত্বপূর্ণ মেটাচারেক্টার এবং তাদের ব্যবহার ব্যাখ্যা করা হলো:

  1. . - যেকোনো একক ক্যারেক্টার মিলে যায়।
  2. * - পূর্ববর্তী ক্যারেক্টার ০ বা তার বেশি বার মিলে যাবে।
  3. + - পূর্ববর্তী ক্যারেক্টার ১ বা তার বেশি বার মিলে যাবে।
  4. ? - পূর্ববর্তী ক্যারেক্টার ০ বা ১ বার মিলে যাবে।
  5. [] - একটি রেঞ্জ বা নির্দিষ্ট ক্যারেক্টার গ্রুপ নির্দেশ করে।
  6. ^ - স্ট্রিং এর শুরু নির্দেশ করে।
  7. $ - স্ট্রিং এর শেষ নির্দেশ করে।
  8. | - OR অপারেটর হিসেবে কাজ করে।
  9. () - গ্রুপিং নির্দেশ করে।
  10. \d - যেকোনো ডিজিট (০-৯) নির্দেশ করে।
  11. \D - ডিজিট নয় এমন যেকোনো ক্যারেক্টার নির্দেশ করে।
  12. \w - যেকোনো শব্দের ক্যারেক্টার (a-z, A-Z, ০-৯, _) নির্দেশ করে।
  13. \W - শব্দের ক্যারেক্টার নয় এমন যেকোনো ক্যারেক্টার নির্দেশ করে।

Java Regex ব্যবহার করা

Java তে Regex ব্যবহার করার জন্য Pattern এবং Matcher ক্লাস ব্যবহার করতে হয়। নিচে উদাহরণসহ Regex এর ব্যবহার দেখানো হলো।

উদাহরণসমূহ

১. String এর মধ্যে প্যাটার্ন খুঁজে বের করা

নিচের উদাহরণে আমরা একটি স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করব।

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        // রেজেক্স প্যাটার্ন এবং স্ট্রিং ডেফাইন করা
        String regex = "Java";
        String text = "I love Java programming. Java is powerful.";

        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        // প্যাটার্নটি খুঁজে বের করা
        while (matcher.find()) {
            System.out.println("Found at index: " + matcher.start() + " - " + matcher.end());
        }
    }
}

আউটপুট:

Found at index: 7 - 11
Found at index: 29 - 33

এই উদাহরণে, আমরা "Java" শব্দটি স্ট্রিং এর মধ্যে খুঁজে বের করেছি এবং তার শুরুশেষ ইনডেক্স প্রিন্ট করেছি।

২. প্যাটার্ন মিলে যাওয়া যাচাই করা

নিচে দেখানো হলো কিভাবে একটি স্ট্রিং এর প্যাটার্ন মিলে যাচ্ছে কিনা তা যাচাই করা যায়।

import java.util.regex.Pattern;

public class RegexMatchExample {
    public static void main(String[] args) {
        String regex = "\\d{3}-\\d{2}-\\d{4}";
        String input = "123-45-6789";

        boolean isMatch = Pattern.matches(regex, input);
        if (isMatch) {
            System.out.println("Pattern matches!");
        } else {
            System.out.println("Pattern does not match.");
        }
    }
}

আউটপুট:

Pattern matches!

উপরের উদাহরণে, আমরা একটি Regex প্যাটার্ন ব্যবহার করে যাচাই করেছি যে স্ট্রিংটি 123-45-6789 এর মতো ফরম্যাটের কিনা। এখানে \d{3}-\d{2}-\d{4} নির্দেশ করে ৩টি ডিজিট, এরপর হাইফেন, তারপর ২টি ডিজিট, আবার হাইফেন, এবং সর্বশেষ ৪টি ডিজিট।

৩. স্ট্রিং এর মধ্যে প্যাটার্ন পরিবর্তন করা

নিচে দেখানো হলো কিভাবে একটি স্ট্রিং এর নির্দিষ্ট প্যাটার্ন পরিবর্তন করা যায়।

public class RegexReplaceExample {
    public static void main(String[] args) {
        String text = "The color is blue. The sky is blue.";
        String regex = "blue";

        // "blue" পরিবর্তন করে "green" করা
        String replacedText = text.replaceAll(regex, "green");
        System.out.println("Replaced Text: " + replacedText);
    }
}

আউটপুট:

Replaced Text: The color is green. The sky is green.

এই উদাহরণে, আমরা "blue" শব্দটিকে "green" এ পরিবর্তন করেছি।

৪. Email ভ্যালিডেশন

নিচে দেখানো হলো কিভাবে Java Regex ব্যবহার করে একটি ইমেইল ঠিকানা ভ্যালিডেট করা যায়।

import java.util.regex.Pattern;

public class EmailValidationExample {
    public static void main(String[] args) {
        String regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";
        String email = "example123@gmail.com";

        boolean isValid = Pattern.matches(regex, email);
        if (isValid) {
            System.out.println("Valid email address");
        } else {
            System.out.println("Invalid email address");
        }
    }
}

আউটপুট:

Valid email address

এই উদাহরণে, আমরা Regex ব্যবহার করে একটি ইমেইল ঠিকানা যাচাই করেছি। ইমেইলটির ফরম্যাট সঠিক হলে এটি Valid বলে রিটার্ন করবে।

৫. স্ট্রিং বিভক্ত করা

নিচে দেখানো হলো কিভাবে Regex ব্যবহার করে একটি স্ট্রিং বিভক্ত করা যায়।

import java.util.regex.Pattern;

public class RegexSplitExample {
    public static void main(String[] args) {
        String text = "apple,banana,grape,orange";
        String regex = ",";

        // স্ট্রিং বিভক্ত করা
        String[] fruits = Pattern.compile(regex).split(text);
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

আউটপুট:

apple
banana
grape
orange

এই উদাহরণে, আমরা , ব্যবহার করে স্ট্রিংটিকে বিভক্ত করেছি এবং প্রতিটি অংশ প্রিন্ট করেছি।

Regex মেটাচারেক্টার ব্যাখ্যা

  1. .: যেকোনো একটি ক্যারেক্টার নির্দেশ করে।
    • উদাহরণ: "a.c" মিলে যাবে "abc", "adc" ইত্যাদির সাথে।
  2. \d: যেকোনো একটি ডিজিট নির্দেশ করে।
    • উদাহরণ: "\d" মিলে যাবে 0-9 এর মধ্যে যেকোনো সংখ্যার সাথে।
  3. []: একটি রেঞ্জ নির্দেশ করে।
    • উদাহরণ: "[a-c]" মিলে যাবে a, b, অথবা c এর সাথে।
  4. *: পূর্ববর্তী ক্যারেক্টার ০ বা তার বেশি বার থাকতে পারে।
    • উদাহরণ: "a*" মিলে যাবে "a", "aa", এবং খালি স্ট্রিং এর সাথে।
  5. +: পূর্ববর্তী ক্যারেক্টার ১ বা তার বেশি বার থাকতে পারে।
    • উদাহরণ: "a+" মিলে যাবে "a", "aa" ইত্যাদির সাথে।
  6. ^: স্ট্রিং এর শুরু নির্দেশ করে।
    • উদাহরণ: "^Hello" স্ট্রিং এর শুরুতে "Hello" আছে কিনা যাচাই করবে।
  7. $: স্ট্রিং এর শেষ নির্দেশ করে।
    • উদাহরণ: "world$" স্ট্রিং এর শেষে "world" আছে কিনা যাচাই করবে।

উপসংহার

Java Regex হলো একটি শক্তিশালী টুল, যা বিভিন্ন স্ট্রিং ম্যানিপুলেশনের কাজকে খুব সহজ করে তোলে। এটি বিভিন্ন কাজ যেমন টেক্সট সার্চ, প্যাটার্ন ম্যাচিং, ভ্যালিডেশন, এবং স্ট্রিং মডিফিকেশন করতে ব্যবহৃত হয়। Pattern এবং Matcher ক্লাস ব্যবহার করে Java তে সহজেই Regex অপারেশন পরিচালনা করা যায়। Regex এর সাহায্যে ডেভেলপাররা বড় টেক্সট ডেটা থেকে নির্দিষ্ট তথ্য সহজেই খুঁজে বের করতে এবং ডেটা প্রক্রিয়াকরণ করতে পারেন।

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


Java Regex: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

Regex (Regular Expression) হলো একটি প্যাটার্ন, যা টেক্সট (স্ট্রিং) অনুসন্ধান, মিলে যাওয়া এবং মডিফিকেশন করার জন্য ব্যবহার করা হয়। Java তে Regex ব্যবহার করে আপনি টেক্সট থেকে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে, মিলে যাওয়া টেক্সটকে পরিবর্তন করতে, বা ভ্যালিডেশন করতে পারেন। Regex টুল ব্যবহার করে প্রোগ্রামিং এ একাধিক কাজ খুব দ্রুত এবং কার্যকরীভাবে সম্পন্ন করা যায়।

Java তে Regex ব্যবহারের জন্য প্রধানত java.util.regex প্যাকেজ ব্যবহার করা হয়। এই প্যাকেজের মধ্যে দুটি প্রধান ক্লাস রয়েছে:

  1. Pattern: এটি একটি কম্পাইলড রেজেক্স প্যাটার্ন তৈরি করে।
  2. Matcher: এটি একটি Pattern ব্যবহার করে টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করে।

Regex এর মূল উপাদানসমূহ

Regex মূলত কিছু বিশেষ ক্যারেক্টার এবং মেটাচারেক্টার নিয়ে গঠিত, যা টেক্সটের নির্দিষ্ট প্যাটার্ন বর্ণনা করে। নিচে কিছু গুরুত্বপূর্ণ মেটাচারেক্টার এবং তাদের ব্যবহার ব্যাখ্যা করা হলো:

  1. . - যেকোনো একক ক্যারেক্টার মিলে যায়।
  2. * - পূর্ববর্তী ক্যারেক্টার ০ বা তার বেশি বার মিলে যাবে।
  3. + - পূর্ববর্তী ক্যারেক্টার ১ বা তার বেশি বার মিলে যাবে।
  4. ? - পূর্ববর্তী ক্যারেক্টার ০ বা ১ বার মিলে যাবে।
  5. [] - একটি রেঞ্জ বা নির্দিষ্ট ক্যারেক্টার গ্রুপ নির্দেশ করে।
  6. ^ - স্ট্রিং এর শুরু নির্দেশ করে।
  7. $ - স্ট্রিং এর শেষ নির্দেশ করে।
  8. | - OR অপারেটর হিসেবে কাজ করে।
  9. () - গ্রুপিং নির্দেশ করে।
  10. \d - যেকোনো ডিজিট (০-৯) নির্দেশ করে।
  11. \D - ডিজিট নয় এমন যেকোনো ক্যারেক্টার নির্দেশ করে।
  12. \w - যেকোনো শব্দের ক্যারেক্টার (a-z, A-Z, ০-৯, _) নির্দেশ করে।
  13. \W - শব্দের ক্যারেক্টার নয় এমন যেকোনো ক্যারেক্টার নির্দেশ করে।

Java Regex ব্যবহার করা

Java তে Regex ব্যবহার করার জন্য Pattern এবং Matcher ক্লাস ব্যবহার করতে হয়। নিচে উদাহরণসহ Regex এর ব্যবহার দেখানো হলো।

উদাহরণসমূহ

১. String এর মধ্যে প্যাটার্ন খুঁজে বের করা

নিচের উদাহরণে আমরা একটি স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করব।

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        // রেজেক্স প্যাটার্ন এবং স্ট্রিং ডেফাইন করা
        String regex = "Java";
        String text = "I love Java programming. Java is powerful.";

        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        // প্যাটার্নটি খুঁজে বের করা
        while (matcher.find()) {
            System.out.println("Found at index: " + matcher.start() + " - " + matcher.end());
        }
    }
}

আউটপুট:

Found at index: 7 - 11
Found at index: 29 - 33

এই উদাহরণে, আমরা "Java" শব্দটি স্ট্রিং এর মধ্যে খুঁজে বের করেছি এবং তার শুরুশেষ ইনডেক্স প্রিন্ট করেছি।

২. প্যাটার্ন মিলে যাওয়া যাচাই করা

নিচে দেখানো হলো কিভাবে একটি স্ট্রিং এর প্যাটার্ন মিলে যাচ্ছে কিনা তা যাচাই করা যায়।

import java.util.regex.Pattern;

public class RegexMatchExample {
    public static void main(String[] args) {
        String regex = "\\d{3}-\\d{2}-\\d{4}";
        String input = "123-45-6789";

        boolean isMatch = Pattern.matches(regex, input);
        if (isMatch) {
            System.out.println("Pattern matches!");
        } else {
            System.out.println("Pattern does not match.");
        }
    }
}

আউটপুট:

Pattern matches!

উপরের উদাহরণে, আমরা একটি Regex প্যাটার্ন ব্যবহার করে যাচাই করেছি যে স্ট্রিংটি 123-45-6789 এর মতো ফরম্যাটের কিনা। এখানে \d{3}-\d{2}-\d{4} নির্দেশ করে ৩টি ডিজিট, এরপর হাইফেন, তারপর ২টি ডিজিট, আবার হাইফেন, এবং সর্বশেষ ৪টি ডিজিট।

৩. স্ট্রিং এর মধ্যে প্যাটার্ন পরিবর্তন করা

নিচে দেখানো হলো কিভাবে একটি স্ট্রিং এর নির্দিষ্ট প্যাটার্ন পরিবর্তন করা যায়।

public class RegexReplaceExample {
    public static void main(String[] args) {
        String text = "The color is blue. The sky is blue.";
        String regex = "blue";

        // "blue" পরিবর্তন করে "green" করা
        String replacedText = text.replaceAll(regex, "green");
        System.out.println("Replaced Text: " + replacedText);
    }
}

আউটপুট:

Replaced Text: The color is green. The sky is green.

এই উদাহরণে, আমরা "blue" শব্দটিকে "green" এ পরিবর্তন করেছি।

৪. Email ভ্যালিডেশন

নিচে দেখানো হলো কিভাবে Java Regex ব্যবহার করে একটি ইমেইল ঠিকানা ভ্যালিডেট করা যায়।

import java.util.regex.Pattern;

public class EmailValidationExample {
    public static void main(String[] args) {
        String regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";
        String email = "example123@gmail.com";

        boolean isValid = Pattern.matches(regex, email);
        if (isValid) {
            System.out.println("Valid email address");
        } else {
            System.out.println("Invalid email address");
        }
    }
}

আউটপুট:

Valid email address

এই উদাহরণে, আমরা Regex ব্যবহার করে একটি ইমেইল ঠিকানা যাচাই করেছি। ইমেইলটির ফরম্যাট সঠিক হলে এটি Valid বলে রিটার্ন করবে।

৫. স্ট্রিং বিভক্ত করা

নিচে দেখানো হলো কিভাবে Regex ব্যবহার করে একটি স্ট্রিং বিভক্ত করা যায়।

import java.util.regex.Pattern;

public class RegexSplitExample {
    public static void main(String[] args) {
        String text = "apple,banana,grape,orange";
        String regex = ",";

        // স্ট্রিং বিভক্ত করা
        String[] fruits = Pattern.compile(regex).split(text);
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

আউটপুট:

apple
banana
grape
orange

এই উদাহরণে, আমরা , ব্যবহার করে স্ট্রিংটিকে বিভক্ত করেছি এবং প্রতিটি অংশ প্রিন্ট করেছি।

Regex মেটাচারেক্টার ব্যাখ্যা

  1. .: যেকোনো একটি ক্যারেক্টার নির্দেশ করে।
    • উদাহরণ: "a.c" মিলে যাবে "abc", "adc" ইত্যাদির সাথে।
  2. \d: যেকোনো একটি ডিজিট নির্দেশ করে।
    • উদাহরণ: "\d" মিলে যাবে 0-9 এর মধ্যে যেকোনো সংখ্যার সাথে।
  3. []: একটি রেঞ্জ নির্দেশ করে।
    • উদাহরণ: "[a-c]" মিলে যাবে a, b, অথবা c এর সাথে।
  4. *: পূর্ববর্তী ক্যারেক্টার ০ বা তার বেশি বার থাকতে পারে।
    • উদাহরণ: "a*" মিলে যাবে "a", "aa", এবং খালি স্ট্রিং এর সাথে।
  5. +: পূর্ববর্তী ক্যারেক্টার ১ বা তার বেশি বার থাকতে পারে।
    • উদাহরণ: "a+" মিলে যাবে "a", "aa" ইত্যাদির সাথে।
  6. ^: স্ট্রিং এর শুরু নির্দেশ করে।
    • উদাহরণ: "^Hello" স্ট্রিং এর শুরুতে "Hello" আছে কিনা যাচাই করবে।
  7. $: স্ট্রিং এর শেষ নির্দেশ করে।
    • উদাহরণ: "world$" স্ট্রিং এর শেষে "world" আছে কিনা যাচাই করবে।

উপসংহার

Java Regex হলো একটি শক্তিশালী টুল, যা বিভিন্ন স্ট্রিং ম্যানিপুলেশনের কাজকে খুব সহজ করে তোলে। এটি বিভিন্ন কাজ যেমন টেক্সট সার্চ, প্যাটার্ন ম্যাচিং, ভ্যালিডেশন, এবং স্ট্রিং মডিফিকেশন করতে ব্যবহৃত হয়। Pattern এবং Matcher ক্লাস ব্যবহার করে Java তে সহজেই Regex অপারেশন পরিচালনা করা যায়। Regex এর সাহায্যে ডেভেলপাররা বড় টেক্সট ডেটা থেকে নির্দিষ্ট তথ্য সহজেই খুঁজে বের করতে এবং ডেটা প্রক্রিয়াকরণ করতে পারেন।

Promotion

Are you sure to start over?

Loading...