我正在寻找一个有助于测试字符串是否在格式化字符串列表中的python模块。我无法找到确切的词来解释我的问题(这可能就是为什么我没找到任何东西)所以这里有一个例子:
REGISTERED_KEYS = (
'super_key',
'key_ending_with_anything_*',
'anything'
)
is_key_registered("super_key", REGISTERED_KEYS)
>> True
is_key_registered("wrong_key", REGISTERED_KEYS)
>> False
is_key_registered("key_ending_with_anything_foobar", REGISTERED_KEYS)
>> True
事情不仅仅是检查字符串是否在列表中,而且还允许字符串格式化。我可能不得不使用正则表达式,但我想知道是否存在这样做的现有模块(因为它似乎是一种常见的需求)。 编辑:我的REGISTERED_KEYS的格式不是我写的那个。可以是正则表达式。
由于
答案 0 :(得分:3)
如果要使用文件通配符,请使用相应的库来匹配文件名:fnmatch
import fnmatch
def is_key_registered(foo, keys):
return any(fnmatch.fnmatch(foo, key) for key in keys)
答案 1 :(得分:0)
您可以浏览所有密钥并检查它们:
import re
def is_key_registered(key, keys):
for _ in keys:
if re.search(_, key):
return True