有誰知道一個算法來檢查兩個通配符表達式比另一個更通用嗎? 例如,我想比較比較兩個glob表達式
*/foo/foo.bar
與
*.bar
顯然第一個表達式被包含在第二位。我知道這對於正則表達式來說是不可能的(至少在沒有時間的情況下,至少我不記得這是複雜類非基本的),但是對於通配符表達式來說,這可能會少得多表現力。我試圖把一個簡單的python算法放在一起,但在特殊情況下它會變得非常討厭。 任何人有一個想法,如果有問題的算法?
UPDATE:
我不希望使用任何蠻力算法,因爲這將是不通用的,因爲性能原因,
問候,
傑拉德
AFAIK * .bar將只在直接目錄中查找文件(至少在glob.glob中)。 –
第二個不包含第一個,但'*/foo/*。bar'包含第一個,以及'*/*/*。bar'。 –
好的,比讓我們從glob表達式改爲通配符表達式(也包含'?')更加通用。我試圖比較這些表達式的規則,並將它們合併/重新排列到一個規則集中。並且該組中規則的順序是相關的,例如,所有* .bar文件的行爲可能與僞裝目錄中的foo.bar文件的行爲不同 – Gerald