我有一個包含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