कैप्चरिंग समूह
मिलने वाले सबस्ट्रिंग निकालें
कैप्चरिंग समूह, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कैप्चरिंग समूह क्या होते हैं
रेगेक्स में कोष्ठक ( ) कैप्चरिंग समूह बनाते हैं। मिलान के बाद आप हर समूह के टेक्स्ट को अलग-अलग निकाल सकते हैं, जो संरचित डेटा को पार्स करने के लिए उपयोगी है।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d+)-(\\d+)").matcher("42-99");
if (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}Group 0 पूरा मिलान होता है
group(0) (या group()) पूरे मिले हुए टेक्स्ट को लौटाता है। क्रमांकित समूह 1 से शुरू होते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d+)px").matcher("width: 24px");
if (m.find()) {
System.out.println(m.group(0));
System.out.println(m.group(1));
}
}
}समूहों की गिनती करना
groupCount() पैटर्न में मौजूद कैप्चरिंग समूहों की संख्या बताता है (समूह 0 को छोड़कर)।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})").matcher("2026-05-30");
if (m.find()) System.out.println(m.groupCount());
}
}तारीख को पार्स करना
कैप्चरिंग समूह किसी फ़ॉर्मैट किए गए मान को अलग-अलग हिस्सों में बाँटना आसान बनाते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})").matcher("2026-05-30");
if (m.matches()) {
System.out.println("year=" + m.group(1));
System.out.println("month=" + m.group(2));
System.out.println("day=" + m.group(3));
}
}
}नाम वाले समूह
(?<name>...) से किसी समूह को नाम दें और नाम के ज़रिए उसे प्राप्त करें। इससे पैटर्न कहीं अधिक पढ़ने योग्य बनते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Pattern p = Pattern.compile("(?<user>\\w+)@(?<host>\\w+\\.\\w+)");
Matcher m = p.matcher("alice@example.com");
if (m.find()) {
System.out.println(m.group("user"));
System.out.println(m.group("host"));
}
}
}समूहों की सीमाएँ
start(n) और end(n) इनपुट के भीतर किसी विशेष समूह की इंडेक्स सीमा देते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d+)").matcher("abc123");
if (m.find()) {
System.out.println(m.start(1) + " to " + m.end(1));
}
}
}गैर-कैप्चरिंग समूह
अल्टरनेशन या क्वांटिफ़ायर के लिए समूह बनाने के उद्देश्य से (?:...) का उपयोग करें, बिना किसी क्रमांकित कैप्चर के। इससे समूहों के क्रमांक अर्थपूर्ण बने रहते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(?:Mr|Ms)\\.? (\\w+)").matcher("Ms. Smith");
if (m.find()) System.out.println(m.group(1));
}
}वैकल्पिक समूह null हो सकते हैं
यदि कोई समूह वैकल्पिक है और मिलान में शामिल नहीं हुआ, तो group(n) null लौटाता है। इस स्थिति को हमेशा सँभालें।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\d+)(px)?").matcher("50");
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
}समूहों के साथ मिलानों पर जाना
बड़े टेक्स्ट से संरचित टोकन निकालने के लिए लूप में find को समूह निकालने की प्रक्रिया के साथ मिलाएँ।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\w+)=(\\d+)").matcher("a=1 b=2 c=3");
while (m.find()) {
System.out.println(m.group(1) + " -> " + m.group(2));
}
}
}Pattern में बैकरिफ़रेंस
रेगेक्स के भीतर \1 पिछले समूह द्वारा कैप्चर किए गए उसी टेक्स्ट का मिलान करता है। इससे दोहराव का पता लगाया जा सकता है, जैसे किसी दोहराए गए शब्द का।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\w+) \\1").matcher("the the cat");
System.out.println(m.find());
System.out.println(m.group(1));
}
}रिकॉर्ड में कैप्चर करना
एक साफ़ पैटर्न यह है: मिलान करें, समूह निकालें और एक छोटी ऑब्जेक्ट बनाएँ। यहाँ हम एक रिकॉर्ड का उपयोग करते हैं।
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Matcher m = Pattern.compile("\\((\\d+),(\\d+)\\)").matcher("(3,7)");
if (m.matches()) {
Point p = new Point(Integer.parseInt(m.group(1)), Integer.parseInt(m.group(2)));
System.out.println(p);
}
}
}त्वरित जाँच
सफल मिलान के बाद group(0) क्या लौटाता है?
पुनरावलोकन
आपने मिले हुए सबस्ट्रिंग निकाले:
- कोष्ठक क्रमांकित समूह बनाते हैं;
group(0)पूरा मिलान होता है और 1 या उससे बड़े क्रमांक कैप्चर किए गए समूह होते हैं। (?<name>...)नाम वाले समूह बनाता है, जिन्हेंgroup("name")से पढ़ा जाता है।(?:...)बिना कैप्चर किए समूह बनाता है।- वैकल्पिक समूह
nullहो सकते हैं;\1पिछले समूह का बैकरिफ़रेंस है।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “कैप्चरिंग समूह” पाठ निःशुल्क है?
हाँ—“कैप्चरिंग समूह” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कैप्चरिंग समूह” में मैं क्या सीखूँगा?
मिलने वाले सबस्ट्रिंग निकालें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“कैप्चरिंग समूह” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।