Java:替换\"with"和\/with /

hqt*_*hqt 3 java regex json replaceall gson

我正在创建json字符串以发送到服务器.我使用GSon生成json字符串.因为我的服务器不理解的字符串,如:\"key\":value"key":value还是"a\/b"不过a/b.所以在生成json字符串之后,我使用replaceAll方法来解决这个问题:

String res = original.replaceAll("\\/", "/").replaceAll("\\"", "\"");
Run Code Online (Sandbox Code Playgroud)

但是这种方法不能像我预期的那样工作.请告诉我如何更换字符串以符合上述服务器.

谢谢 :)

sp0*_*00m 8

  1. 你想要匹配的内容: \"
  2. 反斜杠是一个正则表达式特殊字符(用于转义),因此您需要转义它们: \\"
  3. 反斜杠也是字符串中的Java特殊字符(也用于转义),因此您需要转义它们: \\\\"
  4. 双引号也需要在Java中进行转义(因为它是字符串文字分隔符): \\\\\"

您想要用双引号替换,因此需要再次应用#4点:

.replaceAll("\\\\\"", "\"")
Run Code Online (Sandbox Code Playgroud)

其他替换的逻辑相同(没有点#4,因为没有双引号):

.replaceAll("\\\\/", "/")
Run Code Online (Sandbox Code Playgroud)

合并为一个正则表达式:

.replaceAll("\\\\([\"/])", "$1")
Run Code Online (Sandbox Code Playgroud)