2017-10-05 1 views

Antwort

2

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}" 
+0

Es funktioniert. Jetzt bekomme ich eine einzige \ in der Ausgabe. Vielen Dank. –

+0

Warum akzeptierst du dann meine Antwort @avalan_che nicht? –

+0

Sorry, ich habe es vergessen - konnte es nicht erwarten, Ihre Antwort zu testen. –

Verwandte Themen