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

जावा रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग से नंबर निकालें

निम्नलिखित उदाहरण हैं जो दिखाते हैं कि जावा में रेगुलर एक्सप्रेशन का उपयोग करके एक स्ट्रिंग से नंबर कैसे निकाले जाते हैं।

स्ट्रिंग्स को पार्स करने और उससे जानकारी निकालने में सक्षम होना एक महत्वपूर्ण कौशल है जो प्रत्येक परीक्षक के पास होना चाहिए। एपीआई का परीक्षण करते समय यह विशेष रूप से उपयोगी होता है और आपको JSON या XML प्रतिक्रिया को पार्स करने की आवश्यकता होती है।

निम्नलिखित जावा रेगुलर एक्सप्रेशन उदाहरण एक स्ट्रिंग से संख्या या अंक निकालने पर ध्यान केंद्रित करते हैं।

एक स्ट्रिंग से सभी नंबर निकालें

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

public class RegexExamples {
    public static void main(String[]args) {
        Pattern p = Pattern.compile("\\d+");
        Matcher m = p.matcher("string1234more567string890");
        while(m.find()) {
            System.out.println(m.group());
        }
    }
}

आउटपुट:

1234
567
890

संबंधित:

  • जावा में स्ट्रिंग को इंट में कैसे बदलें
  • जावा में स्ट्रिंग्स को रिवर्स कैसे करें
  • जावा में स्ट्रिंग्स की तुलना कैसे करें

एक स्ट्रिंग से nवां अंक निकालें

यदि आप किसी स्ट्रिंग से केवल कुछ संख्याएँ निकालना चाहते हैं तो आप group() . को एक अनुक्रमणिका प्रदान कर सकते हैं समारोह।

उदाहरण के लिए, यदि हम केवल स्ट्रिंग से अंकों का दूसरा सेट निकालना चाहते हैं string1234more567string890 , अर्थात 567 तब हम उपयोग कर सकते हैं:

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

public class RegexExamples {
    private static final Pattern p = Pattern.compile("[^\\d]*[\\d]+[^\\d]+([\\d]+)");
    public static void main(String[] args) {
        // create matcher for pattern p and given string
        Matcher m = p.matcher("string1234more567string890");

        // if an occurrence if a pattern was found in a given string...
        if (m.find()) {
            System.out.println(m.group(1)); // second matched digits
        }
    }
}

आउटपुट:

567

पैटर्न की व्याख्या [^\d]*[\d]+[^\d]+([\d]+)

  • किसी भी गैर-अंक को अनदेखा करें
  • किसी भी अंक को अनदेखा करें (पहली संख्या)
  • फिर से किसी गैर-अंक पर ध्यान न दें
  • दूसरा नंबर कैप्चर करें

टैग विशेषता से नंबर निकालें

एक्सएमएल या एचटीएमएल टैग के साथ काम करते समय, कभी-कभी किसी विशेषता से मान निकालने की आवश्यकता होती है। उदाहरण के लिए, निम्न टैग पर विचार करें

<result name="response" numFound="9999" start="0">

नंबर निकालने के लिए 9999 हम निम्नलिखित कोड का उपयोग कर सकते हैं:

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

public class RegexExamples {
    public static void main(String[]args) {
        Pattern pattern = Pattern.compile("numFound=\"([0-9]+)\"");
        Matcher matcher = pattern.matcher("");

        if (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

आउटपुट:

9999

अंकों और वर्णों वाली एक स्ट्रिंग निकालें

आप एक स्ट्रिंग के एक हिस्से को निकालने के लिए जावा रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं जिसमें अंक और वर्ण होते हैं। मान लीजिए हमारे पास यह स्ट्रिंग है Sample_data = YOUR SET ADDRESS IS 6B1BC0 TEXT और हम 6B1BC0 extract निकालना चाहते हैं जो 6 वर्ण लंबा . है , हम उपयोग कर सकते हैं:

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

public class RegexExamples {
    public static void main (String[] args) {
        Pattern p = Pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");
        Matcher n = p.matcher("YOUR SET ADDRESS IS 6B1BC0 TEXT");
        if (n.find()) {
            System.out.println(n.group(1)); // Prints 123456
        }
    }
}

आउटपुट:

6B1BC0

रेगुलर एक्सप्रेशन के साथ की-वैल्यू पेयर एक्सट्रैक्ट करें

मान लें कि हमारे पास इस प्रारूप की एक स्ट्रिंग है bookname=testing&bookid=123456&bookprice=123.45 और हम कुंजी-मूल्य जोड़ी को निकालना चाहते हैं bookid=123456 हम उपयोग करेंगे:

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

public class RegexExamples {
    public static void main(String[] args) {
        String s = "bookname=cooking&bookid=123456&bookprice=123.45";
        Pattern p = Pattern.compile("(?<=bookid=)\\d+");
        Matcher m = p.matcher(s);
        if (m.find()) {
            System.out.println(m.group());
        }
    }
}

आउटपुट:

123456

  1. जावा में रेगेक्स का उपयोग करके स्ट्रिंग से HTML टैग कैसे निकालें?

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

  1. हम जावा में इनपुट स्ट्रिंग से नंबर कैसे निकाल सकते हैं?

    java.lang.String वर्ग एक स्ट्रिंग से निपटने के तरीकों का काफी उपाय देता है। इन विधियों की सहायता से, कोई स्ट्रिंग पर ट्रिमिंग, कॉन्सटेनेटिंग, कनवर्टिंग जैसे ऑपरेशन कर सकता है। और तुलना . हम replaceAll() . का उपयोग करके किसी दिए गए स्ट्रिंग से नंबर निकाल सकते हैं स्ट्रिंग . की विधि कक्षा। उदाहरण i

  1. पायथन का उपयोग करके स्ट्रिंग से संख्याएं कैसे निकालें?

    एक स्ट्रिंग से प्रत्येक अंक निकालने के लिए - >>> str1='a34e 345 bcd 5he 78 xyz' >>> for s in str1: if s.isdigit():print (s) 3 4 3 4 5 5 7 8 एक स्ट्रिंग से केवल पूर्णांक निकालने के लिए जिसमें शब्दों को स्पेस कैरेक्टर द्वारा अलग किया जाता है - >>> str1='h3110 23