Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java नियमित अभिव्यक्तियों में पजेसिव (Possessive) क्वांटिफायर


लालची (Greedy) क्वांटिफायर डिफ़ॉल्ट क्वांटिफायर होते हैं। एक लालची क्वांटिफायर इनपुट स्ट्रिंग से जितना संभव हो उतना मिलान करता है (सबसे लंबा संभव मिलान) यदि मिलान नहीं हुआ तो यह अंतिम वर्ण को छोड़ देता है और फिर से मिलान करता है।

एक पजेसिव क्वांटिफायर लालची क्वांटिफायर के समान होता है, एकमात्र अंतर यह है कि यह शुरू में जितने संभव हो उतने वर्णों से मिलान करने का प्रयास करता है और, यदि मिलान नहीं होता है, तो लालची क्वांटिफायर के विपरीत यह बैकट्रैक नहीं करता।

यदि आप लालची क्वांटिफायर के बाद "+" रखते हैं तो यह पजेसिव क्वांटिफायर बन जाता है। पजेसिव क्वांटिफायर की सूची निम्नलिखित है:

क्वांटिफायर विवरण
re*+ शून्य या अधिक घटनाओं से मेल खाता है।
re?+ शून्य या 1 घटना से मेल खाता है।
re++ एक या अधिक घटनाओं से मेल खाता है।
re{n}+ ठीक 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]++";
        // पैटर्न ऑब्जेक्ट बनाना
        Pattern pattern = Pattern.compile(regex);
        // स्ट्रिंग में संकलित पैटर्न का मिलान
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            System.out.print(matcher.group());
            System.out.println();
        }
    }
}

आउटपुट

Enter input text: 45678
45678

  1. - Java रेगुलर एक्सप्रेशन में (?> re) सब-एक्सप्रेशन समझाया गया

    सबएक्सप्रेशन/मेटाकैरेक्टर “(?> re)” बैकट्रैकिंग के बिना स्वतंत्र पैटर्न से मिलान करता है। उदाहरण import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PatternExample { public static void main(String args[]) { // उपयोगक

  1. - Java रेगुलर एक्सप्रेशन में (?: re) सब-एक्सप्रेशन

    सबएक्सप्रेशन/मेटाकैरेक्टर “(?: re)” मिलान किए गए टेक्स्ट को याद किए बिना रेगुलर एक्सप्रेशन को ग्रुप करता है। उदाहरण import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PatternExample { public static void main(String args[]) {

  1. - Java रेगुलर एक्सप्रेशन में \B मेटाकैरेक्टर समझाया गया

    सबएक्सप्रेशन/मेटाकैरेक्टर “\B” नॉन-वर्ड बाउंड्री से मिलान करता है। उदाहरण 1 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main( String args[] ) { String regex = \\Bcause;