Ruby 给一个给定分隔符隔开的字符串,如何移除掉最后一个分隔符和之后的内容

seiran · 2014年10月05日 · 最后由 lithium4010 回复于 2014年10月11日 · 2328 次阅读

这个肯定有很多办法,但是

irb(main):013:0> File.basename("1,2,3,4,5.exe", ",*")
=> "1,2,3,4"

2.1.2 :035 > "1,2,3,4,5.exe".split(/,(?![^,]*,)/) => ["1,2,3,4", "5.exe"]

正则表达式可以解决。

从别的地方借鉴过来的,但是我还是不太明白怎么匹配成功的,见笑了

puts "1,2,3,4,5.exe".gsub(/,[^,]*$/, '')

"1,2,3,4,5.exe".split(',')[0..-2].join(',')

def basename(s, m)
  s[0...s.rindex(m)]
end
需要 登录 后方可回复, 如果你还没有账号请 注册新账号