理解 String.replaceAll() 双重替换异常
出现以下代码的问题:
<code class="java">System.out.println("test".replaceAll(".*", "a"));</code>
结果为“aa”,而不是预期的“a”。使用“.*$”时也会出现此异常。
原因:
异常是由“.*”正则表达式的性质引起的。它匹配任何字符序列,包括空字符串。因此:
解决方案:
要避免此问题,请考虑使用:
正则表达式行为:
而 .* 可以匹配空字符串,它不能匹配两次以上。这是因为:
以上是为什么 `String.replaceAll('.*', 'a')` 结果是 'aa' 而不是 'a'?的详细内容。更多信息请关注PHP中文网其他相关文章!