如果我有字符串:
String test = "replace()thisquotes";
test = test.replaceAll("()", "");
測試結果仍然是:test = "replace()thisquotes"
so()不被替換。
任何想法?
如果我有字符串:
String test = "replace()thisquotes";
test = test.replaceAll("()", "");
測試結果仍然是:test = "replace()thisquotes"
so()不被替換。
任何想法?
的replaceAll函數的第一個參數是一個正則表達式。 「(」字符是在正則表達式特殊字符 使用此:
public class Main {
public static void main(String[] args) {
String test = "replace()thisquotes";
test = test.replaceAll("\\(\\)", "");
System.out.println(test);
}
}
你必須逃離()
,因爲這些都是常規exressions保留字符:
String test = "replace()thisquotes";
test = test.replaceAll("\\(\\)", "");
test = test.replaceAll("\\(\\)", "").
的Java全部更換使用正則表達式,所以在你的例子中「()」是一個空組,使用轉義字符'\「。
正如其他人指出的,你可能想使用String.replace
在這種情況下,因爲你不需要正則表達式。
然而,爲了參考,使用String.replaceAll
時,第一個參數(這被解釋爲一個正則表達式)需要被引用,優選通過使用Pattern.quote
:
String test = "replace()thisquotes";
test = test.replaceAll(Pattern.quote("()"), "");
// ^^^^^^^^^^^^^
System.out.println(test); // prints "replacethisquotes"
「第一個參數......需要引用」另外,第二個參數也需要引用替換的東西 – user102008 2011-06-20 09:39:54
你必須引用您字符串首先是因爲括號是正則表達式中的特殊字符。看看Pattern.qutoe(String s)
。
test = test.replaceAll(Pattern.quote("()"), "");
我想要:replacethisquotes – olidev 2011-05-26 08:20:43