我有一个名为 Host 的模型,用于存储有关所有服务器的所有信息。在模型中,我有一个现场hostname
.
我希望用户能够指定通配符搜索,例如:*one
他们将在哪里获得主机名以one
结尾的所有主机或one*
他们会得到主机名以one
开头的所有主机one*two
、*one*two
、*one*two*
、*one*two*three
、one*two*three
等等。
我尝试迭代hostname.split('*')
的结果,但我最终会感到困惑,如果/elif 继续混乱。 有谁知道处理通配符的更优雅的方法吗?
你在寻找fnmatch
吗?
import fnmatch
print(fnmatch.fnmatch('foo.info', 'foo*'))
print(fnmatch.fnmatch('foo.info', '*.info'))
print(fnmatch.fnmatch('nope', '*.info'))
给
True
True
False
您仍然需要迭代,但必须处理一个if
。