在Python,我可以前缀一个r
到一个字符串(原始字符串)来告诉解释不是字符串翻译中的特殊字符:
>>> r"abc\nsdf#$%\^"
r"abc\nsdf#$%\^"
有没有办法做同样的事情用Clojure?
在Python,我可以前缀一个r
到一个字符串(原始字符串)来告诉解释不是字符串翻译中的特殊字符:
>>> r"abc\nsdf#$%\^"
r"abc\nsdf#$%\^"
有没有办法做同样的事情用Clojure?
Clojure的字符串是Java字符串和读者不以他们的解释添加任何显著。 读者页面只是说:“标准的Java转义字符的支持。”
你可以逃脱\
虽然:
user> (print "abc\\nsdf#$%\\^")
abc\nsdf#$%\^
这仅影响由读取器读取的字符串文字,所以如果你从文件中读取字符串读者永远看不到它们:
user> (spit "/tmp/foo" "abc\\nsdf#$%\\^")
nil
user> (slurp "/tmp/foo")
"abc\\nsdf#$%\\^"
user> (print (slurp "/tmp/foo"))
abc\nsdf#$%\^nil
user>
所以,我认为基本的答案是否定的。
另请注意,如果你使用逆时针(Clojure的用于Eclipse插件),有一个模式,所谓的“智能贴”(默认禁用)这需要的,当你粘贴现有文本字符串中正确转义特殊字符的照顾。
可使用的为这种目的的字面正则表达式。
user=> #"abc\nsdf#$%\^"
#"abc\nsdf#$%\^"
user=> (type #"abc\nsdf#$%\^")
java.util.regex.Pattern
user=> (println (str #"abc\nsdf#$%\^"))
abc\nsdf#$%\^
nil