我有一个包含200个文件(.txt)的目录,我正在使用正则表达式对文件名的某个部分进行排序。使用正则表达式对文件名进行排序
实施例的文件名是:
W:/name/2014-09-02 - name/20140902-070343_1-P4.txt
W:/name/2014-09-02 - name/20140902-070343_10-P4.txt
W:/name/2014-09-02 - name/20140902-070343_2-P4.txt
W:/name/2014-09-02 - name/20140902-070343_200-P4.txt
哪些是在所述阵列中的相同的格式。
下面的代码将文件名存储在一个数组中。然后,我正在寻找使用_1
,_200
,部分文件名的正则表达式进行排序。
require 'FileUtils'
contents = Dir.glob("W:/name/2014-09-02 - name/*.txt").select { |f| f.include?('P4')}.sort_by! {|s| s[/(\D\d+)-P4.txt/]}
puts contents
与上面的代码我得到:
_1
_10
_100
_101
_102
.
.
.
_11
_111
当我要的是:
_1
_2
_3
_4
_5
.
.
.
_10
_11
最终,伊利诺伊州则通过数组要循环确认递增值是连续的(1 - 200)。
转换的数字部分到实际数目。 – 2014-09-25 15:45:36