निम्नलिखित उदाहरण हैं जो दिखाते हैं कि जावा में रेगुलर एक्सप्रेशन का उपयोग करके एक स्ट्रिंग से नंबर कैसे निकाले जाते हैं।
स्ट्रिंग्स को पार्स करने और उससे जानकारी निकालने में सक्षम होना एक महत्वपूर्ण कौशल है जो प्रत्येक परीक्षक के पास होना चाहिए। एपीआई का परीक्षण करते समय यह विशेष रूप से उपयोगी होता है और आपको 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