Wyrażenia regularne w javie

Wyrażenia regularne w javie
0

Witam

Analizuję taki kod:

Kopiuj
        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

iooi
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 11 lat
  • Postów:573
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 = "".

edytowany 1x, ostatnio: iooi

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.