2016-05-11 6 views
0

私は、文字列に単一のバックスラッシュをエスケープするシナリオを持っていますが、ダブルバックスラッシュも含めることができます。Ecapeは単一のバックスラッシュと二重のバックスラッシュを残す

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

私はルビーでこれを行うにはどうすればよい

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

へ。私は既存のダブル '\'をそのまま維持していることに注意してください。

おかげでこのよう

+1

'\ r'がある* 1 *文字だけの\ N ''のように、 '\ T'と' '\\' '。それはバックスラッシュとそれに続く別の文字ではありません。 – Stefan

+0

文字列の残りの慣例に従わないため、入力が疑わしいと思われます。 \\を出力として使用したい場合は\を入力として持つことしか期待できません。私の腸は、あなたが実際にやりたいことをしたくないと言っています... –

+0

@RickSmith、私はあなたに同意します。しかし、私はエディタからの入力を取得しています。\ somedoneはすでに\\をエスケープして\\に追加しましたが、他の文字はエディタで追加されます。だから私はそれをコントロールしていない。 –

答えて

1

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

お返事ありがとうございます。もし私が '\ t'を得たら、ルビの一般的な解決法はありませんか? –

関連する問題