मेरे पास कोड से नीचे है और जिसमें मैं Matcher.group()
का उपयोग कर स्ट्रिंग में सभी मैचों को मुद्रित करने का प्रयास कर रहा हूं। कोई समूह 2 अपवाद:Matcher.group क्यों फेंक रहा है IndexOutOfBoundsException अपवाद
public static void main(String[] args) {
String s = "foo\r\nbar\r\nfoo"
+ "foo, bar\r\nak = "
+ "foo, bar\r\nak = "
+ "bar, bar\r\nak = "
+ "blr05\r\nsdfsdkfhsklfh";
//System.out.println(s);
Matcher matcher = Pattern.compile("^ak\\s*=\\s*(\\w+)", Pattern.MULTILINE)
.matcher(s);
matcher.find();
// This one works
System.out.println("first match " + matcher.group(1));
// Below 2 lines throws IndexOutOfBoundsException
System.out.println("second match " + matcher.group(2));
System.out.println("third match " + matcher.group(3));
}
कोड से ऊपर धागा "मुख्य" java.lang.IndexOutOfBoundsException में अपवाद फेंकता है।
तो मेरा सवाल यह है कि Matcher.group()
काम करता है और जैसा कि आप देख सकते हैं कि मेरे पास 3 मिलान करने वाली स्ट्रिंग होगी, मैं group()
का उपयोग करके उन सभी को कैसे प्रिंट कर सकता हूं।
आप ब्रेकपॉइंट को एक निरीक्षण करना चाहते हैं कि 'matcher' क्या है, कैसे' समूह 'और' ढूंढें 'इंटरैक्ट, आदि – luk2302
@ luk2302, मैंने डीबगर का उपयोग किया लेकिन मुझे पता नहीं था कि' समूह 'और' कैसे ' 'इंटरैक्ट, –