ファイル名が指定したパターンと一致するか調べる
2017/11/20

Rubyでファイル名が指定したパターンと一致するか調べるためには、File.fnmatch?というメソッドを使う。
パターンで使用できるワイルドカードは以下の通り。
*:任意の0文字以上にマッチ
?:任意の1文字にマッチ
[ ]:[]で囲んだ文字のどれかにマッチ
puts "*をチェック sample*,samplefile.txt" puts File.fnmatch?(sample*,samplefile.txt) puts "----------" puts "?をチェック test?.txt,test.txt" puts File.fnmatch?(test?.txt,test.txt) puts "----------" puts "?をチェック test?.txt,test3.txt" puts File.fnmatch?(test?.txt,test3.txt) puts "----------" puts "[]をチェック [hoge],fugahogebar" puts File.fnmatch?([hoge],fugahogebar) puts "----------"
結果はこうなる。
~/dev/ruby $ ruby file_match.rb *をチェック 'sample*','samplefile.txt' true ---------- ?をチェック 'test?.txt','test.txt' false ---------- ?をチェック 'test?.txt','test3.txt' true ---------- []をチェック '[hoge]','fugahogebar' false ----------