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

জাভা রেগুলার এক্সপ্রেশন: প্যারেনথেসিস ( বা ) ম্যাচ করার প্রোগ্রাম


প্যারেনথেসিস ম্যাচ করার রেজেক্স

প্যারেনথেসিস `(` বা `)` ম্যাচ করার রেজেক্স: ^.*[\\(\\)].*$

রেজেক্স ভাঙন

  • ^ — স্ট্রিংয়ের শুরু
  • .* — শূন্য বা অধিক যেকোনো ক্যারেক্টার
  • [\\(\\)] — ক্যারেক্টার ক্লাস: `\(` বা `\)` (এস্কেপ করা হয়েছে)
  • .* — শূন্য বা অধিক যেকোনো ক্যারেক্টার
  • $ — স্ট্রিংয়ের শেষ

উদাহরণ ১: Pattern/Matcher ব্যবহার করে

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

public class ParenthesisMatchExample1 {
    public static void main(String[] args) {
        String regex = "^.*[\\(\\)].*$";
        Scanner sc = new Scanner(System.in);
        System.out.println("ডেটা লিখুন: ");
        String input = sc.nextLine();
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        if (matcher.find()) {
            System.out.println("ইনপুট স্বীকৃত (প্যারেনথেসিস পাওয়া গেছে)");
        } else {
            System.out.println("স্বীকৃত নয় (প্যারেনথেসিস নেই)");
        }
    }
}

আউটপুট উদাহরণ ১

ডেটা লিখুন: sample(text) with parenthesis
ইনপুট স্বীকৃত (প্যারেনথেসিস পাওয়া গেছে)

ডেটা লিখুন: sample text
স্বীকৃত নয় (প্যারেনথেসিস নেই)

উদাহরণ ২: String.matches() ব্যবহার করে (সহজ পদ্ধতি)

import java.util.Scanner;

public class ParenthesisMatchExample2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("ইমেইল অ্যাড্রেস লিখুন: ");
        String e_mail = sc.nextLine();
        
        String regex = "^.*[\\(\\)].*$";
        boolean result = e_mail.matches(regex);
        
        if (result) {
            System.out.println("বৈধ ম্যাচ");
        } else {
            System.out.println("অবৈধ ম্যাচ");
        }
    }
}

আউটপুট উদাহরণ ২

ইমেইল অ্যাড্রেস লিখুন: sample(text) with parenthesis
বৈধ ম্যাচ

ইমেইল অ্যাড্রেস লিখুন: sample text
অবৈধ ম্যাচ

উন্নত রেজেক্স: শুধু প্যারেনথেসিস যাচাই (পুরো স্ট্রিং নয়)

যদি শুধু প্যারেনথেসিস আছে কিনা জানতে হয় (পুরো স্ট্রিং ম্যাচ করার প্রয়োজন নাই), তবে সহজ রেজেক্স:

String simpleRegex = "[\\(\\)]"; // শুধু ( বা ) খুঁজুন
boolean hasParenthesis = Pattern.compile(simpleRegex).matcher(input).find();

সারসংক্ষেপ

প্যারেনথেসিস `(` এবং `)` রেগেক্সে স্পেশাল মেনিং রাখে (গ্রুপিং), তাই এস্কেপ করতে হয়: `\(` এবং `\)`। ক্যারেক্টার ক্লাসে `[\\(\\)]` দিয়ে দুটোই একসাথে ম্যাচ করা যায়। `String.matches()` পুরো স্ট্রিং ম্যাচ করে, `Matcher.find()` সাবস্ট্রিং খুঁজে বের করে — প্রয়োজন অনুযায়ী বেছে নিন।

  1. জাভা রেগেক্স দিয়ে স্ট্রিং/লাইন এর শেষ ম্যাচ করা ($)

  2. জাভা রেগেক্স দিয়ে ক্যারেক্টার রেঞ্জ ম্যাচ করা

  3. জাভা রেগেক্স দিয়ে যেকোনো ক্যারেক্টার ম্যাচ করা (.)

  4. জাভা প্রোগ্রাম: স্ট্রিং-এ স্বরবর্ণ গণনা করা