string - 如何从字符串 Clojure 中删除反斜杠\

标签 string clojure character backslash

我已经尝试了多种方法,但仍然无法正常工作。

 (clojure.string/replace "[\"fish\"]" "\\" "")

我希望它是“[“鱼”]”

我也试过 .replaceAll

问题是我不知道如何将\传入参数。我看过这里建议的答案:

Replacing * with \* in Clojure

这是指添加\而不是删除,但这对我不起作用

最佳答案

无用的简短回答是您无法删除它们,因为它们不是要删除的。

让我们逐步完成上述表达式的评估:

  • 首先它读取字符串 (clojure.string/replace "[\"fish\"]" "\\" "")作为一堆字符并将其解析为一个列表。看起来像 (function-name string1 string2 string3)
  • string1 = ["fish"](注意没有\'s 它们被读者消费)
  • string2 = "\"(再次没有额外的\'s)
  • string3 = ""
  • 然后它通过调用该函数来评估该表达式,因为输入不包含\s,所以它只是将其返回原样。
  • 然后它以适合回读的格式打印结果。为了使这段代码安全阅读,它必须在将 "s 写入屏幕时添加\s 来转义 "s。

  • 在 repl 中,如果我们打印人类消费而不是计算机消费的输出,我们可以看到这一点:
    user> "[\"fish\"]"
    "[\"fish\"]"
     user> (println "[\"fish\"]")
    ["fish"]
    

    或者
    user> (println (clojure.string/replace "[\"fish\"]" "\\" ""))
    ["fish"]
    

    关于string - 如何从字符串 Clojure 中删除反斜杠\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401694/

    相关文章:

    mysql - MySQL中是否存在不能存储在字段中的非法字符?

    c++ - std::string::reserve() 和 std::string::clear() 难题

    list - 将 clojure 中的两个列表压缩为连接字符串列表

    连接 2 个字符串

    Clojure:Lein 运行无法解析符号

    clojure - "flatten"clojure 中单个 map 的 map 列表?

    C++ 将未终止的 char* 连接到 std::string

    java - 使用 stringtokenizer 分割字符串

    php - 如何在 PHP 中使用 * 等式字符串验证括号

    java - 如何获取要读取和计算的第二个文本字段值