我一直在阅读glob
的文档,但有一件事我有点迷路了。使我困惑的是fnmatch
,文档显示它允许创建要搜索的字符串模式,类似于re
,但使用不同的通配符表示法。你知道吗
字符串中的星号何时是通配符?不是什么时候吗?这取决于我进口了哪些包裹吗?你知道吗
我是否必须为字符串的特定目的导入特定的包,或者是否有一些通用通配符?你知道吗
我在看这个页面Google Python for Education,上面说\w
是单词字符的通配符。所以不止一个通配符?还是只有正则表达式才有这样一个?你知道吗
Tags:
好吧,我希望我的回答不要太基于意见。你知道吗
fnmatch
和glob
使用通配符表示文件名匹配。它与正则表达式有一些相似之处,但不同。你知道吗wildcards主要用于匹配文件名(例如:
*.txt
,foo-[0-9].bin
),使用更简单,也更有限。你知道吗regular expressions功能更强大,可以发现/匹配/提取复杂的模式。它们“杀伤力过大”,不方便通过扩展名匹配文件名:
示例:
要匹配扩展名为
.txt
的所有文件:*.txt
.*\.txt$
要匹配以数字开头的所有文件名,请执行以下操作:
[0-9]*
^\d.*
要匹配以.h或.c扩展名开头的文件,请执行以下操作:
a*.[ch]
^a.*\.[ch]$
第一种方法更容易被高级用户掌握,而后者对脚本编写者和程序员更有用(还允许从文本中提取部分,即组)。你知道吗
您可以将
fnmatch
用作程序中文本过滤的穷人regex测试程序,这样熟悉文件模式的用户就知道如何使用自定义过滤器。你知道吗阅读更多关于这篇文章的不同之处:https://unix.stackexchange.com/questions/57957/how-do-regular-expressions-differ-from-wildcards-used-to-filter-files
相关问题 更多 >
编程相关推荐