gpt4 book ai didi

string - 在 Clojure 中用\* 替换 *

转载 作者:行者123 更新时间:2023-12-04 14:46:19 28 4
gpt4 key购买 nike

我该如何逃生 "*""\*"在clojure?似乎无法让它工作:
(s/replace "A*B" #"*" "*")生产 "A*B" (当然)
(s/replace "A*B" #"*" "\*")失败:Unsupported escape character: *(s/replace "A*B" #"*" "\\*")生产 "A*B"再次!
(s/replace "A*B" #"*" "\\\*")失败:Unsupported escape character: *再次!
(s/replace "A*B" #"\\\\*" "*")生产 "A\\*B"
我无法让它生产 A\*B有任何想法吗?谢谢

最佳答案

您必须使用 4 个反斜杠:

> (println (clojure.string/replace "A*B" #"\*" "\\\\*"))
A\*B
nil
>

或者,没有正则表达式,它只是:
> (println (clojure.string/replace "A*B" "*" "\\*"))
A\*B
nil
>

要将其用作正则表达式模式,请使用 re-pattern 功能:
> (def p (clojure.string/replace "A*B" #"\*" "\\\\*"))
#'sandbox17459/p
> (println p)
A\*B
nil
> (clojure.string/replace "BLA*BLA" (re-pattern p) "UH")
"BLUHLA"
>

关于string - 在 Clojure 中用\* 替换 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834063/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com