কম্পিউটার

অধিকারী কোয়ান্টিফায়ার জাভা রেগুলার এক্সপ্রেশন


লোভী কোয়ান্টিফায়াররা ডিফল্ট কোয়ান্টিফায়ার। একটি লোভী কোয়ান্টিফায়ার ইনপুট স্ট্রিং থেকে যতটা সম্ভব মেলে (সম্ভব দীর্ঘতম ম্যাচ) যদি ম্যাচ না হয় তবে এটি শেষ অক্ষরটি ছেড়ে যায় এবং আবার মেলে।

একটি অধিকারী কোয়ান্টিফায়ার একটি লোভী কোয়ান্টিফায়ারের মতোই একমাত্র পার্থক্য হল এটি প্রাথমিকভাবে যতগুলি অক্ষর মেলানোর চেষ্টা করে এবং যদি লোভী কোয়ান্টিফায়ারের বিপরীতে মিল না ঘটে তবে এটি পিছিয়ে যায় না৷

আপনি যদি একটি লোভী কোয়ান্টিফায়ারের পরে একটি "+" রাখেন তবে এটি possessive quantifier হয়ে যায়। নিচের অধিকারী পরিমাণের তালিকা −

কোয়ান্টিফায়ার বিবরণ
re*+ শূন্য বা তার বেশি ঘটনা মেলে।
re?+ শূন্যের সাথে মেলে বা, ১টি ঘটনা।
re++ এক বা একাধিক ঘটনার সাথে মেলে।
পুনরায়{n}+ ঘটনার সাথে হুবহু মেলে।
re{n, m}+ অন্তত n এবং সর্বাধিক m ঘটনার সাথে মেলে।

উদাহরণ

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]++";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      while (matcher.find()) {
         System.out.print(matcher.group());
         System.out.println();
      }
   }
}

আউটপুট

Enter input text:
45678
45678

  1. জাভাতে নিয়মিত এক্সপ্রেশন ব্যবহার করে একটি স্ট্রিং থেকে ব্যঞ্জনবর্ণ কীভাবে সরিয়ে ফেলা যায়?

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

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

  4. জাভা রেগুলার এক্সপ্রেশনে মেটাক্যারেক্টার \B ব্যাখ্যা কর।