Wyrażenia regularne w javie

0

Witam

Analizuję taki kod:

        Pattern p = Pattern.compile("\\d*");
        Matcher m = p.matcher("ab34ef");
        while(m.find())
            System.out.print(m.start() + m.group() +"\n");

Output jest następujący:

0
1
234
4
5
6

Wszystko ok, ale dlaczego pojawia się 6 na końcu?

Dochodzi do znaku f o indeksie 5 wyświetla 5 i pustego stringa "" i moim zdaniem powinien skończyć.

Więc co oznacza 6 ??

Dzięki za odpowiedzi

0

Po znaku f aż do końca ciągu też jest pasujący podciąg - o zerowej długości.
Tak samo dla ciągu "" będzie jedno dopasowanie - start = 0, group = "".

1 użytkowników online, w tym zalogowanych: 0, gości: 1