Comment appliquez-vous OR ou AND dans le filtre fnmatch?

pattern = "*2006*|*2005*"
fnmatch.filter(list,pattern)
3
Jonathan Lam 15 mars 2019 à 00:44

2 réponses

Meilleure réponse

fnmatch ne prend pas en charge cela (dans le cas général), la syntaxe est assez limitée - identique aux jokers de style shell. Vous devrez utiliser des expressions régulières, ou un filtre d'appel deux fois et unir les résultats (pour OU) ou croiser les résultats (pour ET).

3
wim 14 mars 2019 à 21:51

Vous pouvez mettre 5 et 6 entre crochets pour désigner un jeu de caractères :

pattern = "*200[56]*"
fnmatch.filter(list,pattern)

Veuillez vous référer à la documentation de fnmatch pour plus de détails sur les motifs.

3
blhsing 14 mars 2019 à 21:55