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