我正在寻找与Tcl的string match操作等效的Python。具体来说,我想正确处理特殊序列(* 、?和[chars])。
例如,给定三个Python字符串:
expected = 'Foo? Bar* Tar'
actual1 = 'Foo2 Barfluff Tar'
actual2 = 'Foo Bar Tar'
匹配操作match(expected,actual1)
应该返回true,但是match(expected,actual2)
应该返回false。
非常感谢!
答案 0 :(得分:3)
您想要the fnmatch
module。 re
提供了完整的正则表达式,而fnmatch
则执行您要查找的有限的,外壳样式的通配符匹配。
对于区分大小写的匹配,它很简单:
>>> fnmatch.fnmatchcase(actual1, expected)
True
>>> fnmatch.fnmatchcase(actual2, expected)
False
如果要遵循操作系统的区分大小写规则(即,在Windows上不区分大小写,在大多数其他操作系统上是区分大小写的),则可以使用普通fnmatch.fnmatch
来调用自动区分大小写。