14

私は次のような文字列を持っています

"car\"

これをpostgres dbに保存します。保存する前に文字列からバックスラッシュを削除したい。Rubyまたはpostgresでそれを行う方法はありますか? Rubyで削除しようとすると、バックスラッシュの後の引用符がエスケープ文字と見なされます。

4

5 に答える 5

36

次のコードを参照してください。

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 > 
于 2012-10-15T14:27:15.070 に答える
2

人々はそれほど多くはしませんが、Ruby の String クラスは以下をサポートしています:

irb(main):002:0> str = 'car\\'
=> "car\\"
irb(main):003:0> str[/\\$/] = ''
=> ""
irb(main):004:0> str
=> "car"

末尾の '\' を条件付き検索し、空の文字列に置き換えます。

于 2012-10-15T14:31:58.717 に答える
2

末尾のバックスラッシュを削除するには:

"car\\".gsub!(/\\$/, "")

バックスラッシュ自体をバックスラッシュでエスケープする必要があることに注意してください。

于 2012-10-15T14:27:41.937 に答える
0
puts '"car\"'.gsub(/\\(")?$/, '\1')

それはそれを行いますが、末尾のスラッシュは常に en にあり、その後に引用符が続きますか?

于 2012-10-15T14:35:51.907 に答える
-3

言うことを参照してください

str.dump

操作してから、それを操作してみてください。

于 2012-10-15T14:37:00.733 に答える