报告对其中第一个实参为单一正则表达式元字符实参的 String.replaceAll()String.split() 的调用。

正则表达式元字符为 .$|()[{^?*+\ 之一。 它们在正则表达式中有特殊的含义。 例如,调用 "ab.cd".replaceAll(".", "-") 将生成 "-----",因为点匹配任意字符。 很可能本意是转义变体 "\\."

还报告了将 File.separator 用作正则表达式的情况。 File.separator 具有平台特定的值。 它在 Linux 和 Mac 上等于 /,而在 Windows 上等于 \,这不是一个有效的正则表达式,因此这样的代码无法移植。

示例:


  s.replaceAll(".", "-");

在应用快速修复后:


  s.replaceAll("\\.", "-");