regex 如何删除尾随逗号?

jaxagkaj  于 2022-11-26  发布在  其他
关注(0)|答案(5)|浏览(135)

给定如下字符串:

Bob
Bob,
Bob
Bob Burns,

你怎么能不加逗号就把它退回去呢?

Bob
Bob
Bob
Bob Burns

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

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

vwoqyblh1#

我的想法是使用字符串。chomp:
返回一个新字符串,其中从str末尾删除了给定的记录分隔符(如果存在)。
这是你想要的吗?

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

goqiplq22#

使用字符串#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
ne5o7dgx

ne5o7dgx3#

你可以这样做:

str && str.sub(/,$/, '')
lqfhib0f

lqfhib0f4#

正如大家所说,chomp就能达到目的。
从Ruby 2.3开始,您可以使用安全导航运算符,如下所示:str&.chomp(',')。如果str不为nil,它只执行chomp,否则返回nil。

qxsslcnc

qxsslcnc5#

您可以使用

str.delete_suffix(',')

相关问题