检测文件名/字符串中的序列

时间:2011-11-12 06:13:56

标签: ruby regex filenames

我有一个文件名列表,例如

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

扫描列表最有效的方法是什么?(concept1,2)是一个序列,(bar,2,3)是另一个,而(hello,2)是另一个?

1 个答案:

答案 0 :(得分:0)

假设您的文件名列表是一个数组,您可以这样做:

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

将按照第一个非字母字符对文件名进行分组。

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