2016-05-11 11 views
0

Ich habe Szenario, einzelne Backslash in Zeichenfolge zu entkommen, aber es kann auch doppelte Backslashes zu enthalten.Ece nur einzelne Backslash und doppelte Backslashes

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\r\n" 

Um

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\\r\\n" 

Wie kann ich tun dies in Ruby. Bitte beachten Sie, dass ich das bestehende Doppel '\' intakt halte.

Dank

+1

'\ r' ist * ein * Charakter, genau wie' \ n ' '\ t' und' '' '\\. Es ist * kein * Backslash gefolgt von einem anderen Zeichen. – Stefan

+0

Ihre Eingabe erscheint mir verdächtig, weil sie nicht der Konvention des Rests der Zeichenkette folgt. Ich würde erwarten, wenn Sie wollen, \\ als eine Ausgabe würden Sie nur als Eingabe haben. Mein Bauchgefühl sagt, dass du nicht wirklich das tun willst, was du sagst, was du willst ... –

+0

@RickSmith, ich stimme dir zu. Allerdings bekomme ich die Eingabe von einem Editor und somone hinzugefügt \ bereits, die zu \\ geflüchtet sind, aber die anderen Zeichen werden vom Editor hinzugefügt. Also habe ich weniger Kontrolle darüber. –

Antwort

1

So:

"<p>&nbsp; \\$%&amp;;&ntilde;&aacute;&lt; &gt;</p>\r\n".gsub("\r","\\r").gsub("\n","\\n") 
+0

Hey Danke für die Antwort. Was, wenn ich '\ t' bekomme, gibt es keine generische Lösung in Ruby ?? –

Verwandte Themen