相当于Tcl的“字符串匹配”的Python

时间:2018-09-17 15:39:49

标签: python string tcl matching glob

我正在寻找与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。

非常感谢!

1 个答案:

答案 0 :(得分:3)

您想要the fnmatch modulere提供了完整的正则表达式,而fnmatch则执行您要查找的有限的,外壳样式的通配符匹配。

对于区分大小写的匹配,它很简单:

>>> fnmatch.fnmatchcase(actual1, expected)
True
>>> fnmatch.fnmatchcase(actual2, expected)
False

如果要遵循操作系统的区分大小写规则(即,在Windows上不区分大小写,在大多数其他操作系统上是区分大小写的),则可以使用普通fnmatch.fnmatch来调用自动区分大小写。