কম্পিউটার টিউটোরিয়াল

জাভাতে রেগুলার এক্সপ্রেশন কী?

এক রেগুলার এক্সপ্রেশন হলো ক্যারেক্টারগুলোর একটি স্ট্রিং যা একটি প্যাটার্ন ডিফাইন/ফর্ম করে ইনপুট টেক্সট সার্চ করার জন্য। একটি রেগুলার এক্সপ্রেশন এক বা একাধিক ক্যারেক্টার ধারণ করতে পারে। এর মাধ্যমে আপনি স্ট্রিং সার্চ বা রিপ্লেস করতে পারেন।

জাভা java.util.regex প্যাকেজ প্রদান করে প্যাটার্ন ম্যাচিংয়ের জন্য। এই প্যাকেজে তিনটি ক্লাস আছে:

  • Pattern ক্লাস: এই প্যাকেজের Pattern ক্লাস একটি রেগুলার এক্সপ্রেশনের কম্পাইলড রিপ্রেজেন্টেশন। স্ট্রিংয়ের সাথে রেগুলার এক্সপ্রেশন ম্যাচ করার জন্য এই ক্লাসে দুটি মেথড আছে:
    • compile(): রেগুলার এক্সপ্রেশন রিপ্রেজেন্টকারী স্ট্রিং গ্রহণ করে Pattern অবজেক্ট রিটার্ন করে।
    • matcher(): একটি স্ট্রিং ভ্যালু গ্রহণ করে Matcher অবজেক্ট তৈরি করে যা দিয়ে স্ট্রিংটি প্যাটার্নের সাথে ম্যাচ করা হয়।
  • Matcher ক্লাস: java.util.regex প্যাকেজের Matcher ক্লাস হলো একটি ইঞ্জিন যা ম্যাচ অপারেশন পারফর্ম করে। ম্যাচড ভ্যালু পাওয়ার জন্য এই ক্লাসের দুটি মেথড ব্যবহার করতে হয়:
    • find(): কারেন্ট অবজেক্টের ম্যাচ অপারেশন সফল হলে true, অন্যথায় false রিটার্ন করে।
    • group(): একটি ইন্টিজার ভ্যালু (নির্দিষ্ট গ্রুপ) গ্রহণ করে ম্যাচ অপারেশনে সেই গ্রুপ দ্বারা ক্যাপচার করা সিকোয়েন্স রিটার্ন করে।
  • PatternSyntaxException: একটি রেগুলার এক্সপ্রেশন প্যাটার্নে সিনট্যাক্স এরর ইন্ডিকেট করে একটি আনচেকড এক্সেপশন।

উদাহরণ: নন-ASCII ক্যারেক্টার রিমুভ করা

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

public class Example {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter input string: ");
        String input = sc.nextLine();
        String regex = "[^\\p{ASCII}]";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        StringBuffer sb = new StringBuffer();

        while (matcher.find()) {
            matcher.appendReplacement(sb, "");
        }
        matcher.appendTail(sb);
        System.out.println("Result: \n" + sb.toString());
    }
}

আউটপুট

Enter input string: whÿ do we fall
Result: wh do we fall

উদাহরণ: 't' ক্যারেক্টার এর পজিশন খুঁজে বের করা

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

public class StartExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter input text: ");
        String input = sc.nextLine();
        String regex = "[t]";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        while (matcher.find()) {
            int start = matcher.start();
            System.out.println(start);
        }
    }
}

আউটপুট

Enter input text: Hello how are you welcome to Tutorialspoint
26
31
42
  1. জাভা রেগুলার এক্সপ্রেশনে ^ (ক্যারেরট) মেটাক্যারেক্টার ব্যাখ্যা

  2. জাভাতে StringIndexOutOfBoundsException কী?

  3. পাইথন রেগুলার এক্সপ্রেশনে রো স্ট্রিং নোটেশন (Raw String Notation) কী?

  4. পাইথনে রেগুলার এক্সপ্রেশন কী