3

显然我不能用read-string一些字符串,比如

user> (read-string "\" \\ABC \"")
RuntimeException Unsupported escape character: \A  clojure.lang.Util.runtimeException (Util.java:219)
user> 

有办法解决吗?

谢谢!

4

1 回答 1

1

我假设您希望在打印其“\ABC”时得到一个字符串,因此:

user=> (println "\\ABC")
\ABC
nil

如您所见,读者需要两个“\”。正如所read-string期望的字符串是一个有效的 Clojure 表达式,并且从您的示例中您正在尝试读取一个包含字符串的字符串,您需要同时转义 " (正如您所做的那样)和两个\ :

user=> (def s (read-string "\" \\\\AB\""))
#'user/s
user=> (class s)
java.lang.String
user=> (println s)
 \AB
nil
user=> s
" \\AB"
于 2013-09-07T19:37:56.500 回答