【问题标题】:How to replace \" with empty value如何用空值替换\"
【发布时间】:2017-11-06 01:38:39
【问题描述】:

我有一个 JSON 字符串:

{
    "key1": "abc",
    "key2": "def",
    "key3": "gh\"i\"j"
}

预期 o/p:

{
    "key1": "abc",
    "key2": "def",
    "key3": "ghij"
}

Java 字符串 replace()replaceAll() 正在替换所有双引号:

System.out.println(a.replaceAll("\\\"",""));

System.out.println(a.replace("\"",""));

输出:

{
    key1: abc,
    key2: def,
    key3: ghij
}

我尝试替换 \" 的原因是必须使用 JSON 完成某些操作,转义特殊字符并将 JSON 字符串存储到数据库中。这里json因为\"而失效。

如何仅将 \" 替换为空值?

【问题讨论】:

  • replaceAll("\\\\\"", "") 有效。但我仍在试图找出原因。看来你“逃得还不够”。
  • \\\\ 字符串转义后是\\ ,这是\ 的正则表达式转义

标签: java json replace replaceall


【解决方案1】:

您想用空字符串替换 \"

\ 在正则表达式中具有特殊含义,因此需要对其进行转义。因此,您需要将\\" 替换为空字符串。

然后,在java中将字符串\\"写入字符串需要转义每个\ + "

因此,表达式为\\ \\ \"(为了便于阅读,我添加了一些空格):

最后,你需要这样写:

a.replaceAll("\\\\\"", "");

【讨论】:

  • 谢谢,它成功了。我仍然想知道replaceAll("\\\"","") 是如何将\" 替换为空的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
相关资源
最近更新 更多