-1

我有一个文件目录,其中包含文件名中的递增值(不带前导零),我已将其存储在数组中,然后进行了排序

contents = Dir.glob("W:/file path/*.txt").select { |f| f.include?('foo')}.sort_by{|s| s[/(?<=_)\d+/].to_i}

文件格式是

W:/name/2014-09-02 - name/20140902-070343_1-foo.txt 
W:/name/2014-09-02 - name/20140902-070343_10-foo.txt 

我正在寻找一种方法来遍历数组以测试递增值是否具有前导零。在这种情况下,测试将失败。

我是否应该将我需要的文件名部分提取为子字符串并存储在一个新数组中,然后循环验证是否有前导零?这可以用正则表达式来完成/^00/吗?

谢谢

4

1 回答 1

2

根据您的评论,您可以简单地检查所有文件名是否在 3 位之后_

Dir.glob('...').all? { |x| x =~ /_\d{3}/ }
于 2014-09-26T10:01:10.993 回答