你想使用 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