В Python я могу префикс r в строковый литерал (необработанная строка), чтобы сообщить интерпретатору не переводить специальные символы в строке:
>>> r"abc\nsdf#$%\^"
r"abc\nsdf#$%\^"
Есть ли способ сделать то же самое в Clojure?
Ответ 1
Clojure строки являются строками Java, и читатель не добавляет ничего значимого для их интерпретации. Страница читателя просто говорит, что поддерживаются стандартные escape-символы Java."
Вы можете избежать \, хотя:
user> (print "abc\\nsdf#$%\\^")
abc\nsdf#$%\^
Это влияет только на строковые литералы, читаемые читателем, поэтому, если вы читаете строки из файла, читатель никогда их не видит:
Также обратите внимание, что если вы используете Counterclockwise (плагин Eclipse для Clojure), существует режим, называемый "умная паста" (по умолчанию отключен), который заботится о том, чтобы правильно экранировать специальные символы при вставке внутри существующая буквальная строка.
Ответ 3
Может быть полезным для регулярного выражения для таких целей.