字符串形式列表中的Python测试字符串

2024-04-25 23:13:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个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

问题不是简单地检查字符串是否在列表中,而是允许字符串格式化。我可能不得不使用regexp,但我想知道是否有一个现有的模块可以做到这一点(因为这似乎是一个常见的需要)。 编辑:我的注册密钥的格式不一定是我写的格式。可以是正则表达式。你知道吗

谢谢


Tags: 模块key字符串true列表is格式with
2条回答

您可以浏览所有密钥并检查它们:

import re


def is_key_registered(key, keys):
    for _ in keys:
        if re.search(_, key):
            return True

如果要使用文件通配符,请使用适当的库来匹配文件名:^{}

import fnmatch

def is_key_registered(foo, keys):
    return any(fnmatch.fnmatch(foo, key) for key in keys)

相关问题 更多 >