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

जावा रेगेक्स में क्वांटिफायर्स के प्रकार


यदि आप रेगुलर एक्सप्रेशन बनाते समय घटनाओं की संख्या निर्दिष्ट करना चाहते हैं तो आप क्वांटिफायर्स का उपयोग कर सकते हैं। जावा तीन प्रकार के क्वांटिफायर्स का समर्थन करता है: लालची क्वांटिफायर्स, अनिच्छुक क्वांटिफायर्स और अधिकारपूर्ण क्वांटिफायर्स।

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

उदाहरण

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("इनपुट टेक्स्ट दर्ज करें: ");       String input = sc.nextLine();       String regex = "[0-9]+";       // Pattern ऑब्जेक्ट बनाना       Pattern pattern = Pattern.compile(regex);       // String में संकलित पैटर्न मिलान करना       Matcher matcher = pattern.matcher(input);       System.out.println("मिलान किया गया टेक्स्ट: ");       while (matcher.find()) {           System.out.println(matcher.group());       }     } }

आउटपुट

इनपुट टेक्स्ट दर्ज करें: मिलान किया गया टेक्स्ट: 45545

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

उदाहरण

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("इनपुट टेक्स्ट दर्ज करें: ");       String input = sc.nextLine();       String regex = "[0-9]+?";       // Pattern ऑब्जेक्ट बनाना       Pattern pattern = Pattern.compile(regex);       // String में संकलित पैटर्न मिलान करना       Matcher matcher = pattern.matcher(input);       while (matcher.find()) {           System.out.println(matcher.group());       }     } }

आउटपुट

इनपुट टेक्स्ट दर्ज करें: 12345678 1 2 3 4 5 6 7 8

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

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

उदाहरण

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("इनपुट टेक्स्ट दर्ज करें: ");       String input = sc.nextLine();       String regex = "[0-9]++";       // Pattern ऑब्जेक्ट बनाना       Pattern pattern = Pattern.compile(regex);       // String में संकलित पैटर्न मिलान करना       Matcher matcher = pattern.matcher(input);       while (matcher.find()) {           System.out.print(matcher.group());           System.out.println();       }     } }

आउटपुट

इनपुट टेक्स्ट दर्ज करें: 45678 45678

  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 RegEx का उपयोग करके वर्ड बाउंड्री से मिलान करना

    आप मेटा कैरेक्टर “\\b” का उपयोग करके वर्ड बाउंड्री से मिलान कर सकते हैं। उदाहरण 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 में रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग से HTML टैग कैसे निकालें?

    Java का java.util.regex पैकेज कैरेक्टर सीक्वेंस में विशेष पैटर्न खोजने के लिए विभिन्न क्लासेज़ प्रदान करता है। इस पैकेज का Pattern क्लास एक रेगुलर एक्सप्रेशन का कंपाइल्ड रिप्रेजेंटेशन है। किसी रेगुलर एक्सप्रेशन को स्ट्रिंग के साथ मैच करने के लिए यह क्लास दो मेथड्स प्रदान करती है: compile() - यह व