如何在fnmatch.filter中使用OR或AND?

时间:2019-03-14 21:44:53

标签: python python-3.x

如何在fnmatch过滤器中应用“或”或“与”?

pattern = "*2006*|*2005*"
fnmatch.filter(list,pattern)

2 个答案:

答案 0 :(得分:3)

fnmatch不支持(一般情况下),语法非常有限-与shell样式通配符相同。您将必须使用regular expressions,或调用filter两次并合并结果(对于OR)或与结果相交(对于AND)。

答案 1 :(得分:3)

您可以将56放在方括号中以表示字符集:

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

有关支持的模式的详细信息,请参阅fnmatch的{​​{3}}。