让我们依次考虑它们:
"X".replaceAll("X*", "Y")有两个匹配项:
- 在字符位置0处
X
被匹配,并被替换为Y
。 - 在字符位置1,空字符串被匹配,
Y
并被添加到输出中。
最终结果:
YY。
"X".replaceAll("X*?", "Y")还有两个匹配项:
- 在字符位置0,空字符串被匹配,
Y
并被添加到输出中。 比赛中没有消耗 此位置上的字符,X
因此将其逐字复制到输出中。 - 在字符位置1,空字符串被匹配,
Y
并被添加到输出中。
最终结果:
YXY。

让我们依次考虑它们:
"X".replaceAll("X*", "Y")有两个匹配项:
X被匹配,并被替换为
Y。
Y并被添加到输出中。
最终结果:
YY。
"X".replaceAll("X*?", "Y")还有两个匹配项:
Y并被添加到输出中。 比赛中没有消耗 此位置上的字符,
X因此将其逐字复制到输出中。
Y并被添加到输出中。
最终结果:
YXY。