我如何知道使用哪个通配符?

2024-03-28 15:47:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在阅读glob的文档,但有一件事我有点迷路了。使我困惑的是fnmatch,文档显示它允许创建要搜索的字符串模式,类似于re,但使用不同的通配符表示法。你知道吗

字符串中的星号何时是通配符?不是什么时候吗?这取决于我进口了哪些包裹吗?你知道吗

我是否必须为字符串的特定目的导入特定的包,或者是否有一些通用通配符?你知道吗

我在看这个页面Google Python for Education,上面说\w是单词字符的通配符。所以不止一个通配符?还是只有正则表达式才有这样一个?你知道吗


Tags: 字符串文档目的reforgoogle模式页面
1条回答
网友
1楼 · 发布于 2024-03-28 15:47:46

好吧,我希望我的回答不要太基于意见。你知道吗

fnmatchglob使用通配符表示文件名匹配。它与正则表达式有一些相似之处,但不同。你知道吗

wildcards主要用于匹配文件名(例如:*.txtfoo-[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

相关问题 更多 >