Регулярное выражение - Жадный квантификатор [дубликат]
На этот вопрос уже есть ответ:
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 также будет читать конец строки, но я просто не понимаю. Был бы признателен, если кто-то может предоставить пошаговое руководство о том, как он получает этот результат. то есть как он находит каждое из чисел.