【问题标题】:Remove saved double quotes in string删除字符串中保存的双引号
【发布时间】:2015-01-19 11:57:20
【问题描述】:

由于某些未知原因,我保存的一些字符串(在 db 中)有一个前导和尾随 \"

如何检测和删除这些?

my_object.a_string_type_attribute.gsub(/\s|"|'/, '') 什么都不做。

【问题讨论】:

  • 显示你的控制台输出。也许这只是" 的转义字符。
  • 是的,它是" 的转义字符。
  • 那有什么问题?
  • 这就是我的字符串看起来像"\"a_word\""。我不想要内部引号。问题中提供的正则表达式没有抓住双引号:(
  • 看起来像这样是因为 Ruby 在将字符串输出到控制台时会自动转义 "。如果你输入puts "\"a_word\"",你会看到字符串是正确的。

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

你需要逐行做某事:

YourModel.where('column_name LIKE \'"%"\'').each do |model|
  model.column_name = model.column_name[1..-2]
  model.save
end

如果您有大型数据库,可能需要一段时间。如果您想针对您的实时数据库运行它,请务必创建一个备份。

【讨论】:

    【解决方案2】:
    string.strip('"')
    

    应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多