Регулярное выражение - Жадный квантификатор [дубликат]

На этот вопрос уже есть ответ:

SCJP6 регулярное выражение 1 ответ

Я действительно борюсь с этим вопросом:

import java.util.regex.*;    
class Regex2 {    
    public static void main(String[] args) {    
        Pattern p = Pattern.compile(args[0]);    
        Matcher m = p.matcher(args[1]);    
        boolean b = false;    
        while(b = m.find()) {    
            System.out.print(m.start() + m.group());    
        }    
    }
}  

Когда вышеуказанная программа запускается с помощью следующей команды:

java Regex2 "\d*" ab34ef 

Это выходы01234456. Я не очень понимаю этот вывод. Рассмотрим следующие индексы для каждого из символов:

a b 3 4 e f
^ ^ ^ ^ ^ ^
0 1 2 3 4 5

Если бы выход не был0123445?

Я читал вокруг, и похоже, что движок RegEx также будет читать конец строки, но я просто не понимаю. Был бы признателен, если кто-то может предоставить пошаговое руководство о том, как он получает этот результат. то есть как он находит каждое из чисел.

Ответы на вопрос(1)

Ваш ответ на вопрос