为什么 String.replaceAll(regex) 会替换两次
代码片段中:
System.out.println("test".replaceAll(".*", "a"));
正则表达式.* 匹配任何字符,包括零个字符。这意味着它可以匹配整个字符串两次:
此行为不被视为 Java 正则表达式引擎中的错误。相反,它是 .* 匹配任何字符的方式的结果。
替代方案
要避免这种行为,您可以使用以下替代方案:
"test".replaceFirst(".*", "a")
System.out.println("test".matches(".*")); // Prints true
System.out.println("test".replaceAll(".+", "a")); // Prints a
以上是为什么 String.replaceAll(regex) 使用 \'.*\' 时会替换两次?的详细内容。更多信息请关注PHP中文网其他相关文章!