次の文字列があります。
coolStr = '<!-- \\n @author Phil R\\n @date 6.5.2012\\n @description Me T\\\\nesting S\\\\\\\\ntuff\\n-->'
この文字列は二重にエスケープされているようです。文字列を次のように変更したいと思います。
newCoolStr = "<!-- \n @author Phil R\n @date 6.5.2012\n @description Me T\\nesting S\\\\ntuff\n-->"
あなたが書いた場合:
puts newCoolStr
あなたは得るでしょう:
<!--
@author Phil R
@date 6.5.2012
@description Me T\nesting S\\ntuff
-->
私はこれをするのに失敗してきました。私が得ることができる最も近いものは、次のようにバックスラッシュを半分にすることです:
coolStr.gsub(/\\\\/) {'\\'}
しかし、理由がわかりませんが、これが「\\n」のインスタンスをキャッチしないため、改行と最初に「\\\\n」として表示されたものとの間に区別がないこのシナリオになります。例:
<!-- \\n @author Phil R\\n @date 6.5.2012\\n @description Me T\\nesting S\\\\ntuff\\n-->
かなり単純な問題のように思えますが、私はそれを理解できないようです。これを達成する最良の方法は何ですか?