Java 调用 replaceAll()方法报错:java.lang.IllegalArgumentException: character to be escaped is missing、Illegal group reference: group index is missing、named capturing group has 0 length name、named capturing group is missing trailing ‘}’、Illegal group reference等。
该方法把符号"$“与符号”\\“添加了”\\"进行转义,前面的代码可以写成以下:
public static void main(String[] args) {
String regex = "str";
String replacement = "a$bc$d";
replacement = java.util.regex.Matcher.quoteReplacement(replacement);
String str = "test str replace.";
String str1 = str.replaceAll(regex, replacement);
System.out.println(str1);
}