Regex 在正则表达式中搜索多个单词

Regex 在正则表达式中搜索多个单词,regex,Regex,我有一个单词列表,我想在字符串中找到它们(全部)。 在字符串中的任何位置都可以找到单词,而无需任何顺序。 例如: str = "word2 bla bla word2 word1 word3 blabla word4" wordList = ["word1", "word2", "word3", "word4"] if regex(str): print "it worked !" else: print "it didn't work !" 列表的数量和内容将发生变化。 它用于

我有一个单词列表,我想在字符串中找到它们(全部)。 在字符串中的任何位置都可以找到单词,而无需任何顺序。 例如:

str = "word2 bla bla word2 word1 word3 blabla word4" 
wordList = ["word1", "word2", "word3", "word4"]
if regex(str):
   print "it worked !"
else:
   print "it didn't work !"
列表的数量和内容将发生变化。 它用于配置其他程序(pentaho),所以我不能像那样编写代码

如果有可能在列表中添加一个可选的单词,如果其中一个是字符串的一部分,则返回true


我不知道第二部分是否可以在1个正则表达式中使用,但是如果您可以帮助我使用第一部分。

实现这一点的最简单方法是不使用正则表达式:

if all(word in str for word in wordList):
  print "it worked!"
else:
  print "it didn't work!"

是否所有单词都需要匹配,或任何单词?您希望何时打印“它成功了”?在字符串中找到所有单词时,或者至少找到一个单词时?另外,您在使用哪个语言/平台的正则表达式?我添加了一些精确性,是的,所有单词都必须与第一部分匹配,否则它是错误的。我可以找到一个单词^.*(wordX)+.*$,或者所有的单词,但是如果没有任何预定义的顺序和条件,我无法找到如何在正则表达式中使用它们,您可以使用类似
^(?=.*word1)的lookeaheads(?=.*word2)
等。