我有一个字符串,像这样:
"car\"
我将在postgres数据库中存储一个字符串。 我想在保存之前从字符串中删除反斜杠。 是否有一种方法可以在ruby或postgres中实现这样做? 当我尝试在ruby中删除它时,它会将反斜杠后面的引号视为转义字符。
我有一个字符串,像这样:
"car\"
我将在postgres数据库中存储一个字符串。 我想在保存之前从字符串中删除反斜杠。 是否有一种方法可以在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 >
去除末尾的反斜杠:
"car\\".gsub!(/\\$/, "")
虽然人们很少这样做,但 Ruby 的 String 类支持以下功能:
irb(main):002:0> str = 'car\\'
=> "car\\"
irb(main):003:0> str[/\\$/] = ''
=> ""
irb(main):004:0> str
=> "car"
puts '"car\"'.gsub(/\\(")?$/, '\1')
这样就可以了,但是,斜杠后面总是跟着引号吗?
/\\(")*$/
这种处理可能存在的尾引号的方式非常笨拙,实际上意味着“零个或多个”尾引号。 - the Tin Man看一下说的是什么
str.dump
进行操作,然后尝试对其进行操作。
如果未提供块和替换,则返回str或nil。如果没有块和替换,则返回一个枚举器。
http://ruby-doc.org/core-2.3.1/String.html - DevJ3rrystr.chop
,但在我提问后不久被更改为 str.dump
。我的评论是针对使用 chop
不符合 OP 的要求。两者都没有像你说的那样有文档记录。 - the Tin Man