2017-04-22 1 views
-1

Ich möchte alle Abschriften Zeichen mit einem Backslash \ entkommen.Wie kann man alle Abschriften mit einem Backslash abfangen?

Ich habe versucht

"testing _the thing".gsub /(\*|_|`)/, '\\\1' 

Und das Ergebnis ist:

testing \\_the thing 

Mit nur 2 \\

"testing _the thing".gsub /(\*|_|`)/, '\\1' 
=> "testing _the thing" 

Der Ausgang Ich mag würde, ist:

=> "testing \_the thing" 

Ich habe viele Dinge ohne Glück ausprobiert.

+0

Vielleicht versuchen Sie mit '\\\\\ 1' ... –

+0

Was Sie versuchen zu entsprechen oder zu ersetzen? – suhao399

+0

@ L'L bereits versucht, nicht funktioniert, Ergebnis ist doppelt '\', wie '" testing \\ _ die \\ * Sache "' –

Antwort

3

Sie erhalten die richtige Ausgabe. In inspect Modus sehen Sie dies:

"\\_" 

Das bedeutet "wörtlichen -backslash Strich". Beachten Sie, dass innerhalb von Strings in doppelten Anführungszeichen der Backslash für Sonderzeichen und Sequenzen wie \t für Tab oder \n für Newline verwendet wird. Ein Backslash muss sein, wenn Sie einen tatsächlichen Backslash möchten.

Try this:

puts "\\_" 

Sie gerade sehen werden \_ wie Sie wollen.

Wenn Sie dies tun:

"\_" 

Das "wörtliche -underscore" ist, was natürlich nur ein Unterstrich ist. Der Backslash verschwindet, da er überflüssig ist.

Verwandte Themen