লোভী কোয়ান্টিফায়াররা ডিফল্ট কোয়ান্টিফায়ার। একটি লোভী কোয়ান্টিফায়ার ইনপুট স্ট্রিং থেকে যতটা সম্ভব মেলে (সম্ভব দীর্ঘতম ম্যাচ) যদি ম্যাচ না হয় তবে এটি শেষ অক্ষরটি ছেড়ে যায় এবং আবার মেলে।
একটি অধিকারী কোয়ান্টিফায়ার একটি লোভী কোয়ান্টিফায়ারের মতোই একমাত্র পার্থক্য হল এটি প্রাথমিকভাবে যতগুলি অক্ষর মেলানোর চেষ্টা করে এবং যদি লোভী কোয়ান্টিফায়ারের বিপরীতে মিল না ঘটে তবে এটি পিছিয়ে যায় না৷
আপনি যদি একটি লোভী কোয়ান্টিফায়ারের পরে একটি "+" রাখেন তবে এটি 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