निम्न उदाहरण दिखाते हैं कि Java में रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग से नंबर कैसे निकाले जाते हैं।
स्ट्रिंग्स को पार्स करने और उनसे जानकारी निकालने में सक्षम होना हर टेस्टर के लिए एक महत्वपूर्ण कौशल है। यह विशेष रूप से API टेस्टिंग के समय उपयोगी होता है जब आपको JSON या XML रिस्पॉन्स पार्स करने की आवश्यकता होती है।
निम्न Java रेगुलर एक्सप्रेशन उदाहरण स्ट्रिंग से नंबर या अंक निकालने पर केंद्रित हैं।
स्ट्रिंग से सभी नंबर निकालें
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
- Java में String को Int में कैसे बदलें
- Java में Strings को कैसे रिवर्स करें
- Java में Strings की तुलना कैसे करें
स्ट्रिंग से nth अंक निकालें
यदि आप स्ट्रिंग से केवल कुछ विशिष्ट नंबर निकालना चाहते हैं, तो आप 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) {
// दिए गए स्ट्रिंग के लिए पैटर्न p का मैचर बनाएं
Matcher m = p.matcher("string1234more567string890");
// यदि दिए गए स्ट्रिंग में पैटर्न का कोई ऑकरेंस मिला...
if (m.find()) {
System.out.println(m.group(1)); // दूसरा मिला हुआ अंक
}
}
}
आउटपुट:
567
पैटर्न [^\d]*[\d]+[^\d]+([\d]+) की व्याख्या
- किसी भी गैर-अंक को अनदेखा करें
- किसी भी अंक को अनदेखा करें (पहली संख्या)
- फिर से किसी भी गैर-अंक को अनदेखा करें
- दूसरी संख्या को कैप्चर करें
टैग एट्रिब्यूट से नंबर निकालें
XML या HTML टैग्स के साथ काम करते समय, कभी-कभी किसी एट्रिब्यूट से वैल्यू निकालने की आवश्यकता होती है। उदाहरण के लिए, निम्न टैग पर विचार करें
<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
अंकों और वर्णों वाली स्ट्रिंग निकालें
आप Java रेगुलर एक्सप्रेशन का उपयोग करके एक स्ट्रिंग का वह भाग निकाल सकते हैं जिसमें अंक और वर्ण दोनों हों। मान लीजिए हमारे पास यह स्ट्रिंग है Sample_data = YOUR SET ADDRESS IS 6B1BC0 TEXT और हम 6B1BC0 निकालना चाहते हैं जो 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)); // 6B1BC0 प्रिंट करता है
}
}
}
आउटपुट:
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