Ruby 1.9.2p290 및 Rails 3.1.0.rc5를 실행하고 있습니다. 이 정규식을 실행하면 다음과 같이 일치합니다.Ruby Regex가 일치하지 않습니다.
files = Dir.glob("#{File.dirname(video.path)}/*")
files.each do |f|
File.delete(f) unless File.extname(f) =~ /[.flv|.gif]/
end
누락 된 항목이 있습니까?
Ruby 1.9.2p290 및 Rails 3.1.0.rc5를 실행하고 있습니다. 이 정규식을 실행하면 다음과 같이 일치합니다.Ruby Regex가 일치하지 않습니다.
files = Dir.glob("#{File.dirname(video.path)}/*")
files.each do |f|
File.delete(f) unless File.extname(f) =~ /[.flv|.gif]/
end
누락 된 항목이 있습니까?
File.delete(f) unless File.extname(f) =~ /^\.(?:flv|gif)$/
설명 사용 만 정확한 확장자가 일치하는지 확인하려면 다음
^ # Start of string
\. # Match .
(?: # Match the following: Either...
flv # flv
| # or
gif # gif
) # End of alternation
$ # End of string
정확히! 정말 고맙습니다. – Morten
확장자 ".flv"또는 ".gif"중 하나와 일치하는 것으로 생각합니다.
/^(\.flv|\.gif)$/
귀하의 정규식 일치하는 문자 세트 ([...]
)이이 문자 'F', 'g', '내가'중 하나를 포함하는 확장에 대한 진정한 제공을 정의하고, 'L : 따라서 다음과 같은 정규 표현식을 사용할 수 있습니다 ','v ','| ','. ' 확장자가있는 파일은 확장자에 점이 있기 때문에 확장자가있는 파일과 일치합니다.
'/ [. FLV | .gif 참고]에서 /'의미 "하나 개의 문자' '''','''','''','''',''''와 같이. –