2

我想替换 sql 查询中的关键字,所有关键字都以冒号开头,例如:start-date、:end-date。我正在使用这段代码:

(defn replace-by-pair [s [match replacement]]
  (str/replace s (re-pattern (name match)) replacement))

(replace-by-pair ":start-date" [:start-date, "20130901"])

函数名称返回关键字的字符串表示形式,因此不会替换冒号:

":20130901"

还有另一种方法可以将关键字转换为字符串并包含冒号吗?

4

1 回答 1

3

是的,还有另一种将关键字转换为字符串的方法 - 您可以使用str,如下所示:

(name :start-date)
;=> "start-date"

(str :start-date)
;=> ":start-date"
于 2013-10-14T21:08:36.173 回答