你想使用 Unix Shell 中经常使用的通配符(好比 *.py
, Dat[0-9]*.csv
等)去匹配文本字符串html
使用fnmatch
模块的fnmatch
或fnmatchcase
函数python
>>> import fnmatch >>> print(fnmatch.fnmatch('hello.py', '*.py')) True >>> print(fnmatch.fnmatch('hello.py', 'hell?.py')) True >>> print(fnmatch.fnmatchcase('hello.py', '*.py')) True >>> print(fnmatch.fnmatchcase('hello.py', 'hell?.py')) True
其中fnmatch
和fnmatchcase
的区别是正则表达式
fnmatch(filename, pattern)
对大小写的敏感依赖于系统,意思是在判断匹配以前,会对两个参数调用os.path.normcase(path)
,而后再进行匹配。关于os.path.normcase(path)
见:https://docs.python.org/3/lib... fnmatchcase(filename, pattern)
对大小写的敏感不依赖于系统fnmatch
支持的通配符以下:微信
Pattern | Meaning |
---|---|
* | 匹配任意字符串 |
? | 匹配任意一个字符 |
[seq] | 匹配在seq里的任意一个字符 |
[!seq] | 匹配不在seq里的任意一个字符 |
fnmatch()
匹配能力介于简单的字符串方法和强大的正则表达式之间。 若是在数据处理操做中只须要简单的通配符就能完成的时候,这一般是一个比较合理的方案。函数
Python Cookbookspa
欢迎关注个人微信公众号:python每日一练code