在python中使用正则表达式匹配一行中的单词列表

时间:2011-09-15 11:41:13

标签: python

我正在寻找一个表达式来匹配字符串与["xxx", "yyy", "zzz"]之类的单词列表。字符串需要包含所有三个单词,但它们不需要按相同的顺序排列。

例如,应匹配以下字符串:

'"yyy" string of words and than “zzz" string of words “xxx"'

'string of words “yyy””xxx””zzz” string of words'

2 个答案:

答案 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)

我会使用allre.search来查找匹配项。

>>> words = ('xxx', 'yyy' ,'zzz')
>>> text = "sdfjhgdsf zzz sdfkjsldjfds yyy dfgdfgfd xxx"
>>> all([re.search(w, text) for w in words])
True