Возник вопрос о регулярном выражении и попытке ответить. Я нашел еще одну странную вещь.Странное поведение в регулярных выражениях
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"
s, а не X
?
Замена 'X *?' В Perl/PCRE приведет к 'YYY'. – Qtax