我有带括号的字符串和转义字符。我需要匹配这些字符并删除它们。在下面的代码中,我使用具有相同正则表达式的 match() 和 replaceAll(),但是 matches() 返回 false,而 replaceAll() 似乎匹配得很好,因为 replaceAll() 执行并删除了字符。有人可以解释吗?
String input = "(aaaa)\\b";
boolean matchResult = input.matches("\\(|\\)|\\\\[a-z]+");
System.out.printf("matchResult=%s\n", matchResult);
String output = input.replaceAll("\\(|\\)|\\\\[a-z]+", "");
System.out.printf("INPUT: %s --> OUTPUT: %s\n", input, output);
打印出来:
matchResult=false
INPUT: (aaaa) --> OUTPUT: aaaa