当前位置: 代码迷 >> python >> 相当于Tcl的“字符串匹配”的Python
  详细解决方案

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

热度:32   发布时间:2023-07-14 08:59:31.0

我正在寻找与Tcl的操作等效的Python。 具体来说,我想正确处理特殊序列(* 、?和[chars])。

例如,给定三个Python字符串:

expected = 'Foo? Bar* Tar'
actual1 = 'Foo2 Barfluff Tar'
actual2 = 'Foo Bar Tar'

匹配操作match(expected,actual1)应该返回true,但是match(expected,actual2)应该返回false。

非常感谢!

您需要 。 尽管re提供了完整的功能强大的正则表达式,但fnmatch会执行您要查找的有限的,外壳样式的通配符匹配。

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

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

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