我有这样一个数组:["c", "-b", "a"]
["c", "-b", "a"].sort!
返回["-b", "a", "c"]
我希望它像["a", "-b", "c"]
如何从排序中排除减号? 获得它的最简单方法是什么?
答案 0 :(得分:6)
["c", "-b", "a"].sort_by{|e| e[/\w+/] }
# => ["a", "-b", "c"]
答案 1 :(得分:2)
这会忽略所有非字母数字符号,适用于任何长度的字符串:
["c", "-b", "a"].sort_by { |s| s.gsub(/\W/,'') }
# => ["a", "-b", "c"]
答案 2 :(得分:1)
这也有效,但sort_by
更直接:
["c", "-b", "a"].sort {|x,y| x[/\w+/] <=> y[/\w+/]} # => ["a", "-b", "c"]
编辑:更好,我认为:
["c", "-b", "a"].sort {|x,y| x[/[^-]+/] <=> y[/[^-]+/]}