如何使用带有正则表达式的if语句搜索集合(列表)



我试图在一个大列表中搜索,根据我收集到的信息,使用集合而不是普通列表的速度非常快。我的难题是使用if语句和regex来查找列表中的字符串。

我试过以下几种:

import re
search = re.compile('[edits')
if search in set(list):
print('found')

我创建了一个列表,其中有'[editinterfaces]'作为元素,但它似乎找不到它

我想这可能就是您想要的

search = re.compile('[edits')
l1 =  ["that", '[edit interfaces]', "that"]
for v in set(l1):
if re.search(search, v):
print('found ' + v)

您必须检查集合中的元素,看看它们是否与正则表达式匹配。您只需在for循环中进行一次简单的检查就可以做到这一点。

我认为也许您可以省略将列表更改为集合的操作,而使用python的内置过滤器函数。

import re
search = re.compile('[edits')
l1 =  ["that", '[edit interfaces]', "that"]
res = filter(lambda x : re.search(search, x), l1)
print(list(res))

这种方法避免了在列表中循环,并使用python内置的快速函数。

最新更新