完全停止(ピリオド)のないファイル名を認識し、その式をRubyコード内で使用するglob式を作成したいとします。私は普通のグロブ表現はこれをすることができないことを理解しています。しかし、bash extglobにはこれを処理できる構文があります。コアRubyライブラリやサードパーティの宝石を使って、Rubyでbash extglobスタイルのパターンを使うことは可能ですか?Rubyでのエクストラグロブ構文の一致
File::FNM_EXTGLOB
を使ってみましたが、うまくいかなかった。以下はFile::FNM_EXTGLOB
は、bashのextglobとまったく同じ構文を持っているかどうかをテストするための単純化したシナリオであり、ケースではないように思わ:
File.fnmatch("myfile_+[0-9].txt", "myfile_123.txt", File::FNM_EXTGLOB)
また、File.fnmatch
のEnglish-languageとJapanese-languageドキュメントはあなたの許可についてFile::FNM_EXTGLOB
を語りますFile.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB)
のような2つの可能性の組み合わせを使用します。
glob式を使用する代わりに、正規表現に移動するか、おそらくusing the operating system to do the globbing itselfにすることができますが、可能であれば、それらのパスを降りてはいけません。