在正则表达式中使用变量的正确方法是什么? E.g:
(def var "/")
(split "foo/bar" #var)
应该给出
=> ["foo" "bar"]
但它不会这样。那我该怎么做?非常感谢你提前。
答案 0 :(得分:12)
您可以使用re-pattern
:
(def var "/") ; variable containing a string
(def my-re (re-pattern var)) ; variable string to regex
(clojure.string/split "foo/bar" my-re)
或者,使用线程最后一个宏:
(->> "/"
(re-pattern)
(clojure.string/split "foo/bar"))
答案 1 :(得分:7)
(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)