2つのワイルドカード式のどちらが他よりも一般的であるかを確認するアルゴリズムを知っている人はいますか? 例えば私は、明らかに最初の式は第二に含まれる2つのglob式を比較する
*.bar
と
*/foo/foo.bar
を比較したいです。私は正規表現では不可能であることを知っています(少なくとも、あなたが時間の浪費をしていないなら、これは複雑ではないクラスのクラスであることを覚えている限り)。しかし、はるかに少ないワイルドカード表現表現力豊かな。私は単純なpythonアルゴリズムをまとめようとしましたが、特別な場合には非常に厄介です。 その問題のアルゴリズムがあれば誰でも考えがありますか?
UPDATE:
これは、一般的には動作しませんので、私はあなたが
よろしく、
ジェラルド
AFAIK * .barは、直接glob内のファイル(glob.globのatleast)のみを検索します。 –
2番目のものには最初のものは含まれていませんが、 '*/*/*。bar'だけでなく、'/foo/*。bar'も最初のものを含みます。 –
OK、グロブ表現からワイルドカード表現に(「?」を含む)言い換えて、より一般的なものにしましょう。私は、ルールをその中のそのような式と比較し、それらをまとめて単一のルールセットに並べ替えることを試みています。このセットのルールの順序は、関連性があります。すべての* .barファイルの動作は、sepcifiedディレクトリのfoo.barファイルの動作と異なる場合があります。 – Gerald