我正在創建一個方便的宏。部分方便之處在於,可以使用String來指定正則表達式,而不是#「re」表示法。如何編寫Clojure宏以從字符串創建正則表達式?
我無法弄清楚的一個部分是如何讓宏接受字符串並將其重寫爲Clojure正則表達式(例如,生成#「re」符號)。我認爲這是一個語法/轉義問題。
我第一次嘗試天真(假裝我只希望字符串到正則表達式的部分):
(defmacro mymac [mystr] `#~mystr)
它甚至有可能做我想要做什麼?或者,是否有一個實際的函數來獲取一個字符串並生成一個正則表達式,而不是使用#reader宏?
或者我應該放入Java並使用java.util.regex.Pattern?
是的,它確實是我想要的。但你不得不承認,不如j-g-faustus(重新模式「mystr」)那樣漂亮。 – dirtyvagabond 2010-08-06 15:29:10
不,事實上並非如此。 – Sean 2010-08-06 16:14:14