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

Java नियमित अभिव्यक्तियों में नॉन-कैप्चरिंग समूह


कैप्चरिंग समूहों का उपयोग करके आप कई वर्णों को एक इकाई के रूप में मान सकते हैं। आपको केवल समूहीकृत किए जाने वाले वर्णों को कोष्ठक के एक सेट के अंदर रखना होगा। उदाहरण के लिए:

(.*)(\\d+)(.*)

यदि आप कई समूहों से मिलान करने का प्रयास कर रहे हैं तो प्रत्येक समूह के मिलान परिणाम कैप्चर किए जाते हैं। आप इसकी संबंधित समूह संख्या को group() विधि में पास करके किसी समूह का परिणाम प्राप्त कर सकते हैं। 1, 2, 3 आदि (दाएं से बाएं) समूह 0 संपूर्ण मिलान को इंगित करता है।

उदाहरण

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

public class CapturingGroups {
    public static void main(String args[]) {
        System.out.println("Enter input text");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String regex = "(.*)(\\d+)(.*)";
        // पैटर्न ऑब्जेक्ट बनाएं
        Pattern pattern = Pattern.compile(regex);
        // अब मिलानकर्ता ऑब्जेक्ट बनाएं
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            System.out.println("Found value: " + matcher.group(0));
            System.out.println("Found value: " + matcher.group(1));
            System.out.println("Found value: " + matcher.group(2));
            System.out.println("Found value: " + matcher.group(3));
        } else {
            System.out.println("NO MATCH");
        }
    }
}

आउटपुट

Enter input text: sample data with 1234 (digits) in middle
Found value: sample data with 1234 (digits) in middle
Found value: sample data with 123
Found value: 4
Found value: (digits) in middle

नॉन-कैप्चरिंग समूह

नॉन-कैप्चरिंग समूह कैप्चरिंग समूह की समान कार्यक्षमता प्रदान करता है लेकिन यह परिणाम कैप्चर नहीं करता।

उदाहरण के लिए, यदि आपको टेक्स्ट से URL या फोन नंबर का मिलान करने के लिए समूहों का उपयोग करने की आवश्यकता है, चूंकि वांछित उपस्ट्रिंग्स का प्रारंभिक भाग समान है, आपको कुछ समूहों के परिणामों को कैप्चर करने की आवश्यकता नहीं है, ऐसे मामलों में आप नॉन-कैप्चरिंग समूहों का उपयोग कर सकते हैं। एक नॉन-कैप्चरिंग समूह (?: से शुरू होता है और ) पर समाप्त होता है।

उदाहरण

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

public class CapturingGroups {
    public static void main(String args[]) {
        System.out.println("Enter input text");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String regex = "(.*)(?:\\d+)(.*)";
        // पैटर्न ऑब्जेक्ट बनाएं
        Pattern pattern = Pattern.compile(regex);
        // अब मिलानकर्ता ऑब्जेक्ट बनाएं
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            System.out.println("Found value: " + matcher.group(0));
            System.out.println("Found value: " + matcher.group(1));
            System.out.println("Found value: " + matcher.group(2));
        } else {
            System.out.println("NO MATCH");
        }
    }
}

आउटपुट

Enter input text: sample data with 1234 (digits) in middle
Found value: sample data with 1234 (digits) in middle
Found value: sample data with 123
Found value: (digits) in middle

नोट: नॉन-कैप्चरिंग समूह को समूह गणना में शामिल नहीं किया जाएगा।


  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) सब-एक्सप्रेशन

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

  1. - Java में रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग्स से नंबर निकालना

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