我在REPL中试过这个:
当我将这两行放在clj文件中时,android:windowSoftInputMode="adjustPan"
会提供\\ruby
,但ruby
会提供\ruby
和return
。
我知道uby
很特别。
如何在clj文件中获取\r
?为什么在REPL \ruby
= \ruby
?
答案 0 :(得分:2)
(clojure.string/replace s match replacement)
文档说明替换是文字的,没有字符在字符串中特别处理,但$1
$2
等等。
如果您希望使用替换原样,则可以使用(clojure.string/re-quote-replacement r)
来引用它。但是如果你检查那个函数,它会为退格产生4个退格:
(clojure.string/re-quote-replacement \\) ;;=> "\\\\"
因此似乎应该对反斜杠进行转义,因此\\\\
应该有效:
(clojure.string/replace "abc<def>" #"(\w+)<(\w+)>" "\\\\ruby{$1}{$2}") ;;=> "\\ruby{abc}{def}"