2
  dirs=Dir.entries(directory).reject{|f| [".", "..", "images", ".zip"].include? f}

我需要避免在“目录”中的“dirs”中包含一个 zip 文件,这不是正确的,如果我不知道 zip 文件的名称,正确的语法是什么?

4

3 回答 3

1

怎么样Dir.entries(directory).reject { |f| f =~ /\.$|images|\.zip/ }

于 2012-09-09T19:56:50.943 回答
0
Dir.entries(directory).reject{|f| [".", "..", "images"].include? f}.reject{|f|f=~%r(\.(?i:)(?:zip)$)}

这可以做得更好吗?

于 2012-09-09T19:48:05.183 回答
0

您可以在拒绝呼叫中使用正则表达式:

Dir.entries(directory).reject {|f| /\A(\.\.?|images|.*\.zip)\Z =~ f}

它有点难看,但它允许您使用通配符匹配。希望有帮助!

于 2012-09-09T19:56:18.713 回答