You could also use the chomp
function, but it unfortunately only works in the end of the string, assuming there was a reverse chomp, you could:
'"foo,bar"'.rchomp('"').chomp('"')
Implementing rchomp
is straightforward:
class String
def rchomp(sep = $/)
self.start_with?(sep) ? self[sep.size..-1] : self
end
end
Note that you could also do it inline, with the slightly less efficient version:
'"foo,bar"'.chomp('"').reverse.chomp('"').reverse
EDIT: Since Ruby 2.5, rchomp(x)
is available under the name delete_prefix
, and chomp(x)
is available as delete_suffix
, meaning that you can use
'"foo,bar"'.delete_prefix('"').delete_suffix('"')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…