Был вопрос о регулярных выражениях, и, пытаясь ответить, я обнаружил еще одну странную вещь.
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
?