fnmatch.fnmatch 是否与 Unix 模式文件匹配语法不兼容?
Is fnmatch.fnmatch incompatible to the Unix pattern filematching syntax?
我正在使用 Python 3.7.6 和 fnmatch.fnmatch 函数来匹配具有给定模式的文件名。我的大部分测试都有效,但具体而言,以下示例并未 return 预期的值。给出以下exanoke:
> fnmatch.fnmatch('_foo\bar.exe', '^_*')
False
我尝试做的是匹配任何其组件以 _
开头的文件名。非常感谢任何帮助
这不是Python不符合POSIX规范的地方。 UNIX 模式匹配语法不要求 ^
具有任何特殊含义, 除了方括号字符集描述中的 。
参见:
这是有道理的:Glob 是隐式锚定的——它们总是只在开头匹配,所以没有理由支持显式锚点。
我正在使用 Python 3.7.6 和 fnmatch.fnmatch 函数来匹配具有给定模式的文件名。我的大部分测试都有效,但具体而言,以下示例并未 return 预期的值。给出以下exanoke:
> fnmatch.fnmatch('_foo\bar.exe', '^_*')
False
我尝试做的是匹配任何其组件以 _
开头的文件名。非常感谢任何帮助
这不是Python不符合POSIX规范的地方。 UNIX 模式匹配语法不要求 ^
具有任何特殊含义, 除了方括号字符集描述中的 。
参见:
这是有道理的:Glob 是隐式锚定的——它们总是只在开头匹配,所以没有理由支持显式锚点。