Clojure:如何在正则表达式中使用变量?

Clojure:如何在正则表达式中使用变量?,clojure,Clojure,在正则表达式中使用变量的正确方法是什么?例如: (def var "/") (split "foo/bar" #var) 应该给 => ["foo" "bar"] 但它不是这样工作的。那我该怎么做呢?非常感谢您。您可以使用: (def my-re (java.util.regex.Pattern/compile "/")) ; to turn a string into a regex ;; or just (def my-re #"/") ; if the regex can be

在正则表达式中使用变量的正确方法是什么?例如:

(def var "/")
(split "foo/bar" #var)
应该给

=> ["foo" "bar"]
但它不是这样工作的。那我该怎么做呢?非常感谢您。您可以使用:

(def my-re (java.util.regex.Pattern/compile "/")) ; to turn a string into a regex
;; or just
(def my-re #"/") ; if the regex can be a literal

(clojure.string/split "foo/bar" my-re)
或者,使用线程最后一个宏:

(->> "/"
     (re-pattern)
     (clojure.string/split "foo/bar"))

哇,太快了!谢谢!(re-pattern“/”也可以,比(java.util.regex.pattern/compile“/)稍微简洁一些
(->> "/"
     (re-pattern)
     (clojure.string/split "foo/bar"))