在字符串中的任意位置匹配字符串,而不使用常规exp modu

2024-05-26 11:11:29 发布

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

我正在尝试匹配列表中的字符串。如果输入的字符串存在于执行搜索的字符串中的任何位置,我想返回True。我知道,它可以通过使用re.search来实现,但我正在尝试不使用正则表达式模块来实现这一点。我正在尽可能简单地做这件事。你知道吗

一个微不足道的例子可能是:

drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']

if 'cola_with_ice' in drinks:
    print 'Requested drink or a variant of it exists'

但是,我希望我的代码返回True,例如,如果输入了'cola':

if 'cola' in drinks:
    ...

我想知道这是否可能。我想,这是可以做到的,可能是使用通配符等。。。你知道吗


Tags: 模块字符串inretrue列表searchif
2条回答

使用^{}generator expression

>>> drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']
>>> any('cola' in drink for drink in drinks)
True
>>> any('apple' in drink for drink in drinks)
False

在您的示例中,drinks是一个列表,您正在列表中搜索字符串的子字符串,因此您必须在列表中循环(可能使用生成器表达式),如下所示:

drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']
if any('cola' in x for x in drinks):
    # your code

相关问题 更多 >