Strange behavior in regexes
问题 There was a question about regex and trying to answer I found another strange things. String x = "X"; System.out.println(x.replaceAll("X*", "Y")); This prints YY. why?? String x = "X"; System.out.println(x.replaceAll("X*?", "Y")); And this prints YXY Why reluctant regex doesn't match 'X' character? There is "noting"X"nothing" but why first doesn't match three symbols and matches two and then one instead of three? and second regex matches only "nothing" s and not X ? 回答1: Let's consider them