在Clojure中用*替换* [英] Replacing * with \* in Clojure
本文介绍了在Clojure中用*替换*的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在clojure中转义*
到\ *
似乎无法正常工作:
How do I escape "*"
to "\*"
in clojure? Can't seem to get it to work:
(s / replaceA * B#**) code>产生
A * B
(当然)
s / replaceA * B#*\ *)
失败:不支持的转义符:*
(s /替换A * B#*\\ *)
产生
(s / replaceA * B#* \\\ *)
失败:不支持的转义符:*
!
(s / replaceA * B#\\\\ **)
产生A \\ * B
我无法得到 A \ * B
任何想法?感谢
I can't get it to produce A\*B
Any ideas? Thanks
推荐答案
您必须使用4个反斜杠:
You have to use 4 backslashes:
> (println (clojure.string/replace "A*B" #"\*" "\\\\*"))
A\*B
nil
>
或者没有正则表达式,它只是:
or, without a regex, it's simply:
> (println (clojure.string/replace "A*B" "*" "\\*"))
A\*B
nil
>
要将其用作正则表达式模式,请使用 重新模式
功能:
> (def p (clojure.string/replace "A*B" #"\*" "\\\\*"))
#'sandbox17459/p
> (println p)
A\*B
nil
> (clojure.string/replace "BLA*BLA" (re-pattern p) "UH")
"BLUHLA"
>
这篇关于在Clojure中用*替换*的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文