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

জাভা রেগুলার এক্সপ্রেশনে লোভী পরিমাপক (Greedy Quantifiers)


লোভী পরিমাপক (Greedy Quantifiers) হল ডিফল্ট পরিমাপক। একটি লোভী পরিমাপк ইনপুট স্ট্রিং থেকে সম্ভাব্য সর্বাধিক মিল খুঁজে বের করে (সর্বোচ্চ দৈর্ঘ্যের মিল)। যদি মিল না পাওয়া যায়, তবে এটি শেষ অক্ষরটি ছেড়ে দিয়ে আবার মিল করার চেষ্টা করে। নিচে লোভী পরিমাপকদের তালিকা দেওয়া হলো:

পরিমাপক (Quantifier) বিবরণ
re* শূন্য বা অধিক সংখ্যকahrtir xuất hiện।
re? শূন্য বা একটিahrtir xuất hiện।
re+ এক বা অধিক সংখ্যকahrtir xuất hiện।
re{n} ঠিক n সংখ্যকahrtir xuất hiện।
re{n, } কমপক্ষে n সংখ্যকahrtir xuất hiện।
re{n, m} কমপক্ষে n এবং সর্বোচ্চ m সংখ্যকahrtir xuất hiện।

উদাহরণ

নিচের জাভা উদাহরণে আমরা ১ বা অধিক সংখ্যার মিল খুঁজছি, আমাদের ইনপুট স্ট্রিং হলো 45545। যদিও 4, 45, 455 ইত্যাদি মিলের যোগ্য, কিন্তু যেহেতু আমরা লোভী পরিমাপক ব্যবহার করছি, তাই এটি সম্ভাব্য সর্বোচ্চ দৈর্ঘ্যের মিল খুঁজে বের করবে।

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

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter input text: ");
        String input = sc.nextLine();
        String regex = "[0-9]+";
        
        // প্যাটার্ন অবজেক্ট তৈরি
        Pattern pattern = Pattern.compile(regex);
        
        // স্ট্রিং-এ কম্পাইল করা প্যাটার্ন মিলানো
        Matcher matcher = pattern.matcher(input);
        System.out.println("Matched text: ");
        
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

আউটপুট

Enter input text: 45545
Matched text: 45545
  1. জাভা রেগুলার এক্সপ্রেশনে \E মেটাক্যারেক্টার

  2. জাভা রেগুলার এক্সপ্রেশনে PatternSyntaxException ক্লাস

  3. জাভা রেগুলার এক্সপ্রেশনে (?> re) সাব-এক্সপ্রেশন ব্যাখ্যা

  4. জাভাতে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে নম্বর বের করা