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个字符,但他仅用
集合,不是列表,列表应该是['B','C','a','f','g','C','d']
如果我不理解这个问题,你应该编辑这个问题,使其更清楚,并展示其他形式的例子。在这个例子中,我搜索a B和C。我的观点是我可以做a并将条件链接起来。谢谢你,我不理解你的答案。我重申了我的问题。