私はコンテンツと単純なテキストファイルがあります。ルビーダブルスラッシュGSUB問題
patent-inv
を私はそれをやったパート1 \\その2
で特許-INVを交換するつもりですこのような方法:
source_file = IO.read("#{Rails.root}/my_userdata/1.txt")
source_file.gsub!('<<<patent-inv>>>', "part1\\\\part2")
File.open("#{Rails.root}/my_userdata/2.txt", "wb") {|f| f.write source_file }
しかし、ファイルに私が得た: パート1の\のパート2を
私はいくつかの方法を試してみましたが、私は同じ結果を得た:
source_file.gsub!('<<<patent-inv>>>', "part1\\\\part2") => "part1\part2"
source_file.gsub!('<<<patent-inv>>>', "part1\\\part2") => "part1\part2"
source_file.gsub!('<<<patent-inv>>>', "part1\\part2") => "part1\part2"
誰もがこの奇妙な行動を見つける私を助けてもらえますか?
を試してみてください。さらに、バックスラッシュは のgsub/sub置換文字列で特別な意味を持ちます。したがって、もう一度二重にする必要があります。つまり、 の代わりに1つのバックスラッシュごとに4つのバックスラッシュが必要な理由は です。それは奇妙ですが、それは長い間仕様です。私は考えていない 我々はこの動作を変更することができます。代わりにブロックを使用できます。 ** printf "b" .gsub(/ b /){'\\'} ** –