检查列表中的字符串,但带有通配符

时间:2013-09-25 02:42:08

标签: python regex string list

我觉得RegEx是要走的路,但到目前为止我喜欢我的列表的简单性,而且我对RegEx还不太深入..

我需要能够遍历此列表:

dat_list = ["Red_Ball","Yellow_Ball","Purple_Ball","Green_Ball"]

> "Red_Ball" in dat_list
    True

> "Purple_Turnip" in dat_list
    True

> "Beige_Sandwich" in dat_list
    False

我知道我也可以检查列表,但不会检查它是否像“Purple_Turnip”这样的通配符字符串。

1 个答案:

答案 0 :(得分:1)

只检查列表(或集合)中的成员资格很简单,但是如果要根据模式过滤列表,则不能(通常)获得散列表查找的性能优势,因此您可以好好回到列表推导。

[item for item in alist if re.match(expr, item)]

[item for item in alist if item.startswith(pat)]

甚至

rx = re.compile(expr)
filter(rx.match, alist)