有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    replaceAll对模式和替换都使用正则表达式,这两种方法都需要转义反斜杠。因此,第二个参数所需的替换模式是:

    \\"
    

    现在因为Java字符串文本中的\"也需要转义,这意味着这些字符中的每一个都需要额外的反斜杠。添加引号,您将获得:

    "\\\\\""
    

    这就是你从你的资料中得到的

    如果您只使用String.replace,而使用正则表达式,则会更简单。这样,您只需将此字符串(而不是字符串文字)作为第二个参数:

    \"
    

    转义并转换为字符串文字后,将变成:

    "\\\""
    

    这仍然不是很好,但至少更好

    另一种方法是使用replaceAll但与^{}一起使用:

    t = t.replaceAll("\"", Matcher.quoteReplacement("\\\""));
    

    就我个人而言,我只会使用replace()。毕竟,您不需要正则表达式替换