Tôi đã ở dưới mã và trong đó tôi đang cố gắng in tất cả các kết quả phù hợp trong một Chuỗi bằng cách sử dụng Matcher.group()
.Tại sao Matcher.group ném IndexOutOfBoundsException Exception
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));
}
Trên đang ném ngoại lệ trong chủ đề java.lang.IndexOutOfBoundsException "chính": Không có nhóm 2 ngoại lệ.
Vì vậy, Câu hỏi của tôi là cách Matcher.group()
hoạt động và Như bạn có thể thấy tôi sẽ có 3 chuỗi phù hợp, làm cách nào tôi có thể in tất cả chúng bằng cách sử dụng group()
.
Bạn có thể muốn đặt điểm ngắt kiểm tra những gì 'matcher' nắm giữ, cách' nhóm' và 'tìm' tương tác, v.v. – luk2302
@ luk2302, tôi đã sử dụng trình gỡ lỗi nhưng không biết cách' nhóm' và 'tìm 'tương tác, –