Ruby:如何从字符串中删除尾部反斜杠?

时间:2012-10-15 14:18:35

标签: ruby-on-rails ruby string postgresql

我有一个像

这样的字符串
"car\"

我将在postgres db中存储。我想在保存之前从字符串中删除反斜杠。有没有办法可以用ruby或postgres做到这一点?当我尝试在ruby中删除它时,它会将反斜杠后的引号视为转义字符。

5 个答案:

答案 0 :(得分:30)

请参阅以下代码:

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 > 

答案 1 :(得分:2)

删除尾部反斜杠:

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

请注意,反斜杠必须使用反斜杠进行转义。

答案 2 :(得分:2)

人们不会这么做,但Ruby的String类支持:

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

这是条件搜索尾随'\',并替换为空字符串。

答案 3 :(得分:0)

puts '"car\"'.gsub(/\\(")?$/, '\1')

会这样做, 但是,尾随的斜线总是在en后跟一个引用吗?

答案 4 :(得分:-2)

看看

的内容
str.dump

操作,然后尝试操作。