8
在正则表达式中使用变量的正确方法是什么?例如: -Clojure:如何在正则表达式中使用变量?
(def var "/")
(split "foo/bar" #var)
应该给
=> ["foo" "bar"]
但它不以这种方式工作。那我该怎么做?非常感谢你提前。
在正则表达式中使用变量的正确方法是什么?例如: -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 a literal
(clojure.string/split "foo/bar" my-re)
您可以使用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"))
哇,这是快!非常感谢! – 2012-01-07 12:36:57
(重新模式“/”)将会做得更好,比(java.util.regex.Pattern/compile“/”)更简洁 – NielsK 2012-01-07 13:36:29
很好,非常感谢。 – 2012-01-07 15:33:06