Regex 重新搜索并链接多个条件,python3

Regex 重新搜索并链接多个条件,python3,regex,python-3.x,Regex,Python 3.x,我有一个要搜索多个字符的集合。 但是,如果满足所有条件,我的函数应返回“true”。 如果可能的话,我想使用“正则表达式” 一个集合可能是: set_a = {'B', 'C', 'b', 'c'} set_b = {'B', 'C', 'a', 'f', 'g', 'c', 'd'} set_c = {'A', 'G', 'D', 'F', 'b', 'e'} ... 查找某些字符的函数如下所示: if re.search("[a]", set_a) and re.search("[b]",

我有一个要搜索多个字符的集合。
但是,如果满足所有条件,我的函数应返回“true”。
如果可能的话,我想使用“正则表达式”

一个集合可能是:

set_a = {'B', 'C', 'b', 'c'}
set_b = {'B', 'C', 'a', 'f', 'g', 'c', 'd'}
set_c = {'A', 'G', 'D', 'F', 'b', 'e'}
...
查找某些字符的函数如下所示:

if re.search("[a]", set_a) and re.search("[b]", set_a) and re.search("[c]", set_a):  
        return True
在进一步的if查询中,我要搜索其他字符。
我不喜欢我的表达之间的联系。
是否有一种方法可以仅在一个表达式中搜索[a][b][c]
我在文档或这里没有找到任何东西,但我相信其中有一些非常简单的东西。我完全是个初学者。提前感谢

我不知道您为什么要使用
re.search()
进行此操作,它用于搜索字符串中的模式,而不是列表

您可以使用
all()
函数:

if all(c in lit_list for c in "abc"):
    return True

可以对列表中的每个字符使用由一个正向前瞻组成的正则表达式:

/(?=.*a)(?=.*b)(?=.*c)(?=.*d)/
您将需要使用Python方法来形成正则表达式。在Ruby中,这可以按如下方式完成

list = ['a', 'b', 'c', 'd']
s = list.each_with_object('') { |c,s| s << "(?=.*#{c})" }
  #=> "(?=.*a)(?=.*b)(?=.*c)(?=.*d)"
Regexp.new(s)
  #=> /(?=.*a)(?=.*b)(?=.*c)(?=.*d)/
list=['a','b','c','d']
s=列表。每个带有对象(“”)的_{c,s | s”(?=.*a)(?=.*b)(?=.*c)(?=.*d)”
Regexp.new(s)
#=>/(?=.*a)(?=.*b)(?=.*c)(?=.*d)/

我怀疑使用正则表达式是否是解决这个问题的最佳方法,但这是一个单独的问题。

关于你的第一句话,我相信该列表将用于形成用于匹配任意字符串的模式。这不是我得到的印象。该列表有4个字符,但他仅用re.search()。他说“我有一个我想搜索的列表”。我的列表也可以像:{'B','C','a','f','g','C','d'}。有时我想搜索两个或多个字母。我不明白,这个列表和你上面显示的列表有何不同?顺便说一句,那是一个
集合,不是
列表,列表应该是
['B','C','a','f','g','C','d']
如果我不理解这个问题,你应该编辑这个问题,使其更清楚,并展示其他形式的例子。在这个例子中,我搜索a B和C。我的观点是我可以做a并将条件链接起来。谢谢你,我不理解你的答案。我重申了我的问题。