2017-08-24 5 views
0

完全停止(ピリオド)のないファイル名を認識し、その式を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.fnmatchEnglish-languageJapanese-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にすることができますが、可能であれば、それらのパスを降りてはいけません。

答えて

1

RubyでFNM_EXTGLOBを使用して実行できることは、リンク先のドキュメントに記載されています。つまり、中括弧は、そのフラグを使用中に取得する唯一の追加機能です。外部ライブラリがあるかどうかはわかりませんが、私はそこにいるかどうかは疑問です。