2012-01-07 13 views
8

正規表現で変数を使用する正しい方法は何ですか?例えば:Clojure:正規表現で変数を使用する方法は?

(def var "/") 
(split "foo/bar" #var) 

=> ["foo" "bar"] 

を与える必要があります。しかし、それはこのように動作しません。だから私はそれをどうやってやるの?事前にどうもありがとうございました。

答えて

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) 
+0

うわー、それは簡単でした!どうもありがとう! –

+17

(再パターン "/")は、(java.util.regex.Pattern/compile "/")よりやや簡潔になります – NielsK

+0

ニース、ありがとう。 –

11

あなたは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")) 
関連する問題