2011-11-12 61 views
1

我有一個文件名列表,例如檢測文件名/字符串中的序列

  • concept01.xyz
  • concept02.xyz
  • foo.xyz
  • bar_concept.xyz
  • bar2_concept.xyz
  • bar3_concept.xyz
  • hello.xyz
  • hello_v2。 xyz

什麼是最有效的方式來掃描列表,並知道(概念1,2)是一個序列,(酒吧,2,3)是另一個,(hello,2)是另一個?

回答

0

假設你的文件名列表是一個數組,你可以做這樣的事情:

filenames.group_by {|f| f.match(/^[A-Za-z]+/)[0] } 

哪樣組文件名通過一切直到第一個非字母字符。

(注意:.group_by需要Ruby 1.9+)