全局否定如何工作?

Laj*_*jos 6 linux glob gruntjs gulp

我正在使用 gulp 并且不理解以下 glob 模式的方法:

'./bower_components/**/!(*.min).css'
Run Code Online (Sandbox Code Playgroud)

它选择除最小后缀文件之外的所有 css 文件。如果它是正则表达式,它会编译成什么?

我明白为什么'./bower_components/**/*!(.min).css'表单不起作用,但我仍然不明白为什么不需要在前面加星号,.css例如:

'./bower_components/**/!(*.min)*.css'
Run Code Online (Sandbox Code Playgroud)

.min 之前的星号读取字符,或者您能解释一下吗?如果星号在括号中,该模式如何在否定括号之前找到匹配项?我将其想象为正则表达式。谢谢。

Pab*_*yes 6

我发现这个 stackoverflow 答案与这个问题相关: /sf/answers/2540683701/

应用到这个问题上,则如下:

import glob
files = glob.glob('./bower_components/**/[!*.min].css')
Run Code Online (Sandbox Code Playgroud)