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

Java नियमित अभिव्यक्तियों में रिलक्टेंट (Reluctant) क्वांटिफायर


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

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

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

क्वांटिफायर विवरण
re*? शून्य या अधिक घटनाओं से मेल खाता है।
re?? शून्य या 1 घटना से मेल खाता है।
re+? एक या अधिक घटनाओं से मेल खाता है।
re{n}? ठीक n घटनाओं से मेल खाता है।
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("Pattern found from " + matcher.start() + " to " + (matcher.end() - 1) + "::");
            System.out.print(matcher.group());
            System.out.println();
        }
    }
}

आउटपुट

Enter input text: 12345678
Pattern found from 0 to 0::1
Pattern found from 1 to 1::2
Pattern found from 2 to 2::3
Pattern found from 3 to 3::4
Pattern found from 4 to 4::5
Pattern found from 5 to 5::6
Pattern found from 6 to 6::7
Pattern found from 7 to 7::8

  1. - Java नियमित अभिव्यक्तियों में PatternSyntaxException क्लास

    PatternSyntaxException क्लास रेगुलर एक्सप्रेशन स्ट्रिंग में सिंटैक्स त्रुटि के मामले में फेंके जाने वाले अनचेक्ड अपवाद को दर्शाती है। इस क्लास में तीन मुख्य विधियां हैं: getDescription() - त्रुटि का विवरण वापस करता है। getIndex() - त्रुटि इंडेक्स वापस करता है। getPattern() - त्रुटि वाले नियमित अभ

  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 में रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग्स से नंबर निकालना

    निम्न उदाहरण दिखाते हैं कि Java में रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग से नंबर कैसे निकाले जाते हैं। स्ट्रिंग्स को पार्स करने और उनसे जानकारी निकालने में सक्षम होना हर टेस्टर के लिए एक महत्वपूर्ण कौशल है। यह विशेष रूप से API टेस्टिंग के समय उपयोगी होता है जब आपको JSON या XML रिस्पॉन्स पार्स कर