如何从字符串 Clojure 中删除反斜杠 \
How to remove a backslash \ from string Clojure
我已经尝试了几种方法,但仍然无法正常工作。
(clojure.string/replace "[\"fish\"]" "\" "")
我希望它是“["fish"]”
我也试过.replaceAll
问题是我不知道如何将\传入参数。我看过这里建议的答案:
Replacing * with \* in Clojure
这是指添加 \ 而不是删除,但这对我不起作用
"[\"fish\"]"
是 "["fish"]"
引号是escaped。如果您的字符串字面上是“[\"fish\"]”,它看起来像 "[\\"fish\\"]"
.
那样的话
> (clojure.string/replace "[\\"fish\\"]" #"\" "")
"[\"fish\"]"
无用的简短回答是您无法删除它们,因为它们不在那里可以删除。
让我们逐步计算上面的表达式:
首先它将字符串(clojure.string/replace "[\"fish\"]" "\" "")
读取为一堆字符并将其解析为列表。看起来像 (function-name string1 string2 string3)
- string1 = ["fish"](请注意,reader 没有使用它们)
- string2 = "\"(同样没有多余的 \'s)
- string3 = ""
然后它通过调用函数来计算该表达式,因为输入不包含 \s 它只是 returns 它不变。
- 然后它以适合读回的格式打印结果。为了使这段代码可以安全阅读,它必须 通过添加 \s 来转义 "s它将它们写入屏幕。
如果我们打印人类消费而不是计算机消费的输出,我们可以在 repl 看到这一点:
user> "[\"fish\"]"
"[\"fish\"]"
user> (println "[\"fish\"]")
["fish"]
或
user> (println (clojure.string/replace "[\"fish\"]" "\" ""))
["fish"]
我不明白你到底想要什么结果,但如果你试图解析给定的字符串并期望你的输出是一个向量,那么你可以使用 clojure 的 Cheshire
来解析字符串像这样:
(vec (cheshire.core/parse-string "[\"fish\"]" )))
;; ["fish"]
如果你想要一个简单的字符串结果那么你可以使用上面的 answers/solutions.
我已经尝试了几种方法,但仍然无法正常工作。
(clojure.string/replace "[\"fish\"]" "\" "")
我希望它是“["fish"]”
我也试过.replaceAll
问题是我不知道如何将\传入参数。我看过这里建议的答案:
Replacing * with \* in Clojure
这是指添加 \ 而不是删除,但这对我不起作用
"[\"fish\"]"
是 "["fish"]"
引号是escaped。如果您的字符串字面上是“[\"fish\"]”,它看起来像 "[\\"fish\\"]"
.
那样的话
> (clojure.string/replace "[\\"fish\\"]" #"\" "")
"[\"fish\"]"
无用的简短回答是您无法删除它们,因为它们不在那里可以删除。
让我们逐步计算上面的表达式:
首先它将字符串
(clojure.string/replace "[\"fish\"]" "\" "")
读取为一堆字符并将其解析为列表。看起来像 (function-name string1 string2 string3)- string1 = ["fish"](请注意,reader 没有使用它们)
- string2 = "\"(同样没有多余的 \'s)
- string3 = ""
然后它通过调用函数来计算该表达式,因为输入不包含 \s 它只是 returns 它不变。
- 然后它以适合读回的格式打印结果。为了使这段代码可以安全阅读,它必须 通过添加 \s 来转义 "s它将它们写入屏幕。
如果我们打印人类消费而不是计算机消费的输出,我们可以在 repl 看到这一点:
user> "[\"fish\"]"
"[\"fish\"]"
user> (println "[\"fish\"]")
["fish"]
或
user> (println (clojure.string/replace "[\"fish\"]" "\" ""))
["fish"]
我不明白你到底想要什么结果,但如果你试图解析给定的字符串并期望你的输出是一个向量,那么你可以使用 clojure 的 Cheshire
来解析字符串像这样:
(vec (cheshire.core/parse-string "[\"fish\"]" )))
;; ["fish"]
如果你想要一个简单的字符串结果那么你可以使用上面的 answers/solutions.