dirs=Dir.entries(directory).reject{|f| [".", "..", "images", ".zip"].include? f}
我需要避免在“目录”中的“dirs”中包含一个 zip 文件,这不是正确的,如果我不知道 zip 文件的名称,正确的语法是什么?
怎么样Dir.entries(directory).reject { |f| f =~ /\.$|images|\.zip/ }
?
Dir.entries(directory).reject{|f| [".", "..", "images"].include? f}.reject{|f|f=~%r(\.(?i:)(?:zip)$)}
这可以做得更好吗?
您可以在拒绝呼叫中使用正则表达式:
Dir.entries(directory).reject {|f| /\A(\.\.?|images|.*\.zip)\Z =~ f}
它有点难看,但它允许您使用通配符匹配。希望有帮助!