Странное поведение в регулярных выражениях
Был вопрос о регулярных выражениях, и, пытаясь ответить, я обнаружил еще одну странную вещь.
String x = "X";
System.out.println(x.replaceAll("X*", "Y"));
Это печатает YY. Почему??
String x = "X";
System.out.println(x.replaceAll("X*?", "Y"));
И это печатает YXY
Почему неохотное регулярное выражение не соответствует символу «X»? Есть"noting"X"nothing"
но почему сначала не совпадают три символа и совпадают два, а затем один вместо трех? и только второе регулярное выражение"nothing"
а неX
?