我正在运行Ruby 1.9.2p290和Rails 3.1.0.rc5.当我运行这个正则表达式时,它匹配所有内容:
files = Dir.glob("#{File.dirname(video.path)}/*")
files.each do |f|
File.delete(f) unless File.extname(f) =~ /[.flv|.gif]/
end
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
要确保只匹配确切的扩展名,请使用
File.delete(f) unless File.extname(f) =~ /^\.(?:flv|gif)$/
Run Code Online (Sandbox Code Playgroud)
说明:
^ # Start of string
\. # Match .
(?: # Match the following: Either...
flv # flv
| # or
gif # gif
) # End of alternation
$ # End of string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |