如何删除尾随逗号?

时间:2011-04-30 17:51:17

标签: ruby regex

给出如下字符串:

Bob
Bob,
Bob
Bob Burns,

如何以逗号退回?

Bob
Bob
Bob
Bob Burns

另外,如果传递nil,我希望这种方法不会中断,只是为了返回一个nil?

def remove_trailing_comma(str)
  !str.nil? ? str.replace(",") :nil
end

3 个答案:

答案 0 :(得分:43)

我的想法是使用string.chomp

  

返回一个新的String,其中从str的结尾(如果存在)中删除了给定的记录分隔符。

这样做你想要的吗?

def remove_trailing_comma(str)
    str.nil? ? nil : str.chomp(",")
end

答案 1 :(得分:4)

使用String#chomp

irb(main):005:0> "Bob".chomp(",")
=> "Bob"
irb(main):006:0> "Bob,".chomp(",")
=> "Bob"
irb(main):007:0> "Bob Burns,".chomp(",")
=> "Bob Burns"

更新:

def awesome_chomp(str)
    str.is_a?(String) ? str.chomp(",") : nil
end
p awesome_chomp "asd," #=> "asd"
p awesome_chomp nil #=> nil
p awesome_chomp Object.new #=> nil

答案 2 :(得分:3)

你可以这样做:

str && str.sub(/,$/, '')
相关问题