我正在创建一个方便的宏。部分便利在于可以仅使用字符串来指定正则表达式,而不是使用 #"re" 表示法。
我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式(例如,生成 #"re" 符号)。我认为这是一个语法/转义问题。
我的第一次天真的尝试(假装我只想要字符串到正则表达式部分):
(defmacro mymac [mystr] `#~mystr)
甚至有可能做我想做的事吗?或者,是否有一个实际的函数可以获取字符串并生成正则表达式,而不是使用 # reader 宏?
或者我应该直接进入Java并使用java.util.regex.Pattern?
有一个函数可以实现它:重新模式 http://clojuredocs.org/clojure_core/clojure.core/re-pattern
user=> (re-pattern "\\d+")
#"\d+"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)