Die (clojure.string/replace s match replacement)
Dokumentation besagt, dass die Ersetzung literal ist und keine Zeichen speziell in Strings behandelt werden, sondern die $1
$2
und so.
Wenn Sie möchten, verwenden Sie Ihren Ersatz, wie es ist, dann können Sie die (clojure.string/re-quote-replacement r)
verwenden, um es zu zitieren. Aber wenn Sie diese Funktion überprüfen produziert es 4 Rücktasten für eine Backspace:
(clojure.string/re-quote-replacement \\) ;;=> "\\\\"
So scheint es, dass umgekehrten Schrägstrich entwertet werden sollte, deshalb \\\\
sollte funktionieren:
(clojure.string/replace "abc<def>" #"(\w+)<(\w+)>" "\\\\ruby{$1}{$2}") ;;=> "\\ruby{abc}{def}"
Es funktioniert. Jetzt bekomme ich eine einzige \ in der Ausgabe. Vielen Dank. –
Warum akzeptierst du dann meine Antwort @avalan_che nicht? –
Sorry, ich habe es vergessen - konnte es nicht erwarten, Ihre Antwort zu testen. –