如果我有字符串:
String test = "replace()thisquotes";
test = test.replaceAll("()", "");
测试结果仍为:test = "replace()thisquotes"
so()未被替换。
有什么想法吗?
答案 0 :(得分:11)
您不需要正则表达式,因此请使用:
test.replace("()", "")
答案 1 :(得分:2)
正如其他人所指出的,在这种情况下你可能想要使用String.replace
,因为你不需要正则表达式。
但是,作为参考,使用String.replaceAll
时,需要引用第一个参数(解释为正则表达式),最好使用Pattern.quote
:
String test = "replace()thisquotes";
test = test.replaceAll(Pattern.quote("()"), "");
// ^^^^^^^^^^^^^
System.out.println(test); // prints "replacethisquotes"
答案 2 :(得分:0)
replaceAll函数的第一个参数是正则表达式。 “(”字符是正则表达式中的特殊字符。 使用此:
public class Main {
public static void main(String[] args) {
String test = "replace()thisquotes";
test = test.replaceAll("\\(\\)", "");
System.out.println(test);
}
}
答案 3 :(得分:0)
你必须转义()
,因为它们是为正则表达式保留的字符:
String test = "replace()thisquotes";
test = test.replaceAll("\\(\\)", "");
答案 4 :(得分:0)
test = test.replaceAll("\\(\\)", "").
Java替换所有使用正则表达式,因此在您的示例中“()”是一个空组,请使用转义字符'\“。
答案 5 :(得分:0)
您必须首先引用您的String,因为括号是正则表达式中的特殊字符。看看Pattern.qutoe(String s)
。
test = test.replaceAll(Pattern.quote("()"), "");