谁能告诉我为什么
System.out.println("test".replaceAll(".*", "a"));
Run Code Online (Sandbox Code Playgroud)
结果是
aa
Run Code Online (Sandbox Code Playgroud)
请注意,以下结果相同:
System.out.println("test".replaceAll(".*$", "a"));
Run Code Online (Sandbox Code Playgroud)
我已经在java 6和7上测试了它,两者似乎都表现得一样.我错过了什么或者这是java正则表达式引擎中的错误吗?
有一个关于正则表达式的问题并试图回答我发现了另一个奇怪的事情.
String x = "X";
System.out.println(x.replaceAll("X*", "Y"));
Run Code Online (Sandbox Code Playgroud)
这打印YY.为什么??
String x = "X";
System.out.println(x.replaceAll("X*?", "Y"));
Run Code Online (Sandbox Code Playgroud)
这打印YXY
为什么不情愿的正则表达式与'X'字符不匹配?有"noting"X"nothing"但为什么首先不匹配三个符号并匹配两个然后一个而不是三个?和第二个正则表达式只匹配"nothing"s而不是X?