0

我想用双引号字符替换字符串中的所有括号。

我认为这会起作用:

"[foo".replaceAll(Pattern.quote("["), Pattern.quote("""));

但事实并非如此。谁能帮我理解我需要做什么?

4

5 回答 5

5

你需要转义引号

"[foo".replaceAll(Pattern.quote("["), "\""); 
于 2012-04-20T22:43:30.543 回答
5

replaceAll 接受字符串

"[foo".replaceAll("\\[", "\""));

我是否也可以将此添加为测试您的正则表达式字符串的好地方

于 2012-04-20T22:45:28.913 回答
1
"[foo".replaceAll("\\[", "\"")

要转义字符串中的特殊字符,例如“\”,您需要在前面加上一个 \,因此 \" 变为 ",\\ 变为 \,等等...

于 2012-04-20T22:47:41.743 回答
1
"[foo".replaceAll(Pattern.quote("["), "\"") ;

第二个参数 - 替换 - 是一个通用字符串(不需要引号)。

于 2012-04-20T22:55:18.767 回答
0

以下作品:

"[foo".replaceAll("\[", "\\"")

笔记:

  1. replaceAll 将其第一个参数解释为正则表达式。
  2. 您需要转义(在正则表达式上下文中)左括号,否则格式错误。
于 2012-04-20T22:52:11.227 回答