在Ruby中,我想从字符串中go 掉前导引号和尾随引号.引号字符将出现0或1次.例如,以下所有内容都应转换为foo,bar:

  • "foo,bar"
  • "foo,bar
  • foo,bar"
  • foo,bar

推荐答案

您也可以使用chomp函数,但不幸的是,它只在字符串末尾起作用,假设有一个反向chomp,您可以:

'"foo,bar"'.rchomp('"').chomp('"')

实现rchomp很简单:

class String
  def rchomp(sep = $/)
    self.start_with?(sep) ? self[sep.size..-1] : self
  end
end

请注意,您也可以使用效率稍低的版本进行内联操作:

'"foo,bar"'.chomp('"').reverse.chomp('"').reverse

EDIT:由于Ruby 2.5,rchomp(x)delete_prefix的名义提供,chomp(x)delete_suffix的名义提供,这意味着您可以使用

'"foo,bar"'.delete_prefix('"').delete_suffix('"')

Ruby相关问答推荐

Ruby:这两种混入模块方法是否等效?

Ruby 局部变量未定义

将 ruby​​ hash .default 设置为列表

Ruby 中的p是什么?

Ruby 中的 -> (stab) 运算符是什么?

我不明白Ruby本地范围(local scope)

Ruby 'require' 语句是在类定义的内部还是外部?

如何在 Ruby 中创建可重用的块/proc/lambda?

不区分大小写的数组#include?

在 Ruby 中将散列扁平化为字符串

如何在 ruby​​ 中解压缩 Gzip 字符串?

如何通过反射获得活动记录关联

是什么让 Ruby 变慢了?

为什么显式返回会对 Proc 产生影响?

很好地格式化输出到控制台,指定选项卡的数量

Mountain Lion rvm 安装 1.8.7 x11 错误

Ruby 哈希白名单过滤器

使用正则表达式进行 Ruby Electron邮件验证

如何在 Ruby 中对数组进行分块

使用 Liquid 标记在 Jekyll 中获取今天的日期