私は次のような文字列を持っています
"car\"
これをpostgres dbに保存します。保存する前に文字列からバックスラッシュを削除したい。Rubyまたはpostgresでそれを行う方法はありますか? Rubyで削除しようとすると、バックスラッシュの後の引用符がエスケープ文字と見なされます。
私は次のような文字列を持っています
"car\"
これをpostgres dbに保存します。保存する前に文字列からバックスラッシュを削除したい。Rubyまたはpostgresでそれを行う方法はありますか? Rubyで削除しようとすると、バックスラッシュの後の引用符がエスケープ文字と見なされます。
次のコードを参照してください。
1.9.3p125 :022 > s = "cat\\"
=> "cat\\"
1.9.3p125 :023 > puts s
cat\
=> nil
1.9.3p125 :024 > s.chomp("\\")
=> "cat"
1.9.3p125 :025 >
人々はそれほど多くはしませんが、Ruby の String クラスは以下をサポートしています:
irb(main):002:0> str = 'car\\'
=> "car\\"
irb(main):003:0> str[/\\$/] = ''
=> ""
irb(main):004:0> str
=> "car"
末尾の '\' を条件付き検索し、空の文字列に置き換えます。
末尾のバックスラッシュを削除するには:
"car\\".gsub!(/\\$/, "")
バックスラッシュ自体をバックスラッシュでエスケープする必要があることに注意してください。
puts '"car\"'.gsub(/\\(")?$/, '\1')
それはそれを行いますが、末尾のスラッシュは常に en にあり、その後に引用符が続きますか?
言うことを参照してください
str.dump
操作してから、それを操作してみてください。