2015-12-16 136 views
2

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

的事情是不是简单地检查一个字符串在列表但它也允许字符串格式化。我可能不得不使用正则表达式,但我想知道是否有现成的模块可以做到这一点(因为它似乎是一种常见的需求)。 编辑:我REGISTERED_KEYS的格式不一定是我写的。可以是正则表达式。

感谢

+1

这是正则表达式的确切用例,所以你需要的唯一模块是're' – lejlot

+0

@lejlot:''key_ending_with_anything _ *''不是正则表达式 – eumiro

+0

它是一个正则表达式,它使用什么类型的语法,或典型的正则表达式无关紧要。 – lejlot

回答

0

您可以浏览所有主要的检查他们:

import re 


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

如果你想使用文件通配符,然后使用适当的库匹配的文件名:fnmatch

import fnmatch 

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