在这样的程序中:
String userInput = "[]";
String str = "Hello World[]!";
String replacement = "";
str = str.replaceAll(userInput, replacement);
System.out.print(str);
我得到了错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 1
[]
但是我想要输出:
Hello World!
是否有办法使userInput对于replaceAll安全?假设userInput为:[]
。我需要如何处理String才能始终替换String而不是String的含义。
答案 0 :(得分:1)
如果您不希望将用户文本解释为正则表达式,只需使用replace
而不是replaceAll
。
String str = "foo bar [] baz []";
String userInput = "[]";
String replacement = "moo";
str = str.replace(userInput, replacement);
// str = "foo bar moo baz moo"
请注意,它替换了目标的所有个事件。命名有点不幸。以下是String#replace*
方法的摘要:
replace
:替换所有逐字记录。replaceFirst
:替换第一个正则表达式匹配项。replaceAll
:替换所有正则表达式匹配项。答案 1 :(得分:0)
您可以显式quote
输入字符串:
ActionChains(driver).key_down(Keys.CONTROL).click(link).key_up(Keys.CONTROL).perform()
[]
\ Q [] \ E