我有一个小模块,可以获取单词的引理及其复数形式。然后,它在句子中搜索以任一顺序包含两个单词(单数或复数)的句子。我让它工作,但我想知道是否有更优雅的方式来构建这个表达式。谢谢!注意:Python2
words = ((cell,), (wolf,wolves))
string1 = "(?:"+"|".join(words[0])+")"
string2 = "(?:"+"|".join(words[1])+")"
pat = ".+".join((string1, string2)) +"|"+ ".+".join((string2, string1))
# Pat output: "(?:cell).+(?:wolf|wolves)|(?:wolf|wolves).+(?:cell)"
然后搜索:
pat = re.compile(pat)
for sentence in sentences:
if len(pat.findall(sentence)) != 0:
print sentence+'\n'