我正在寻找一个表达式来匹配字符串与["xxx", "yyy", "zzz"]
之类的单词列表。字符串需要包含所有三个单词,但它们不需要按相同的顺序排列。
例如,应匹配以下字符串:
'"yyy" string of words and than “zzz" string of words “xxx"'
或
'string of words “yyy””xxx””zzz” string of words'
答案 0 :(得分:4)
简单的字符串操作:
mywords = ("xxx", "yyy", "zzz")
all(x in mystring for x in mywords)
如果字词边界相关(即你想匹配zzz
而不是Ozzzy
):
import re
all(re.search(r"\b" + re.escape(word) + r"\b", mystring) for word in mywords)
答案 1 :(得分:0)
我会使用all
和re.search
来查找匹配项。
>>> words = ('xxx', 'yyy' ,'zzz')
>>> text = "sdfjhgdsf zzz sdfkjsldjfds yyy dfgdfgfd xxx"
>>> all([re.search(w, text) for w in words])
True