我正在寻找一个表达式来匹配字符串与像["xxx", "yyy", "zzz"]
这样的单词列表。字符串需要包含所有三个单词,但它们不需要按照相同的顺序。在python中使用正则表达式匹配一行中的单词列表
例如,以下字符串应该匹配:
'"yyy" string of words and than “zzz" string of words “xxx"'
或
'string of words “yyy””xxx””zzz” string of words'
我正在寻找一个表达式来匹配字符串与像["xxx", "yyy", "zzz"]
这样的单词列表。字符串需要包含所有三个单词,但它们不需要按照相同的顺序。在python中使用正则表达式匹配一行中的单词列表
例如,以下字符串应该匹配:
'"yyy" string of words and than “zzz" string of words “xxx"'
或
'string of words “yyy””xxx””zzz” string of words'
简单的字符串操作:
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)
你是对的......如果'in'会执行,不需要使用正则表达式。 :) –
我想用all
和re.search
找到匹配项。
>>> words = ('xxx', 'yyy' ,'zzz')
>>> text = "sdfjhgdsf zzz sdfkjsldjfds yyy dfgdfgfd xxx"
>>> all([re.search(w, text) for w in words])
True
是否允许重复(即可以'xxx'出现多次)? –
重复是允许的,但所有三个单词应至少出现一次。 – shash