Python测试字符串格式的字符串列表

时间:2015-12-16 08:44:25

标签: python regex string list

我正在寻找一个有助于测试字符串是否在格式化字符串列表中的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的格式不是我写的那个。可以是正则表达式。

由于

2 个答案:

答案 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