使用通配符搜索列表中的任何字符串

时间:2017-07-16 12:13:04

标签: python string list any

我有这段代码

for j in range(length_termlist):    
    searchterm=''.join(termlist[j])    
    if any(searchterm in s for s in text[k]):
        do something

termlist是包含我的搜索字词的列表。这些我想在包含多个句子的第二个列表(文本)中找到。这个工作到目前为止,但准确性不够好,因为它找到任何字符串组合。现在我宁愿在最后找到搜索词和通配符来考虑复数。

现在代码示例:在单词“carry”中检测到搜索词“car”。

它应该如何:搜索词“car”只能在单词“car”,“cars”......“car?”中被检测到。或类似的东西。

上面的代码是否有任何简单的添加或是否需要其他搜索方法?

编辑:目的通常是查找搜索词出现的文本。一点点差异(例如复数)有助于识别具有相同语义上下文的更多文本。

1 个答案:

答案 0 :(得分:0)

re模块可以执行此操作

regex = re.compile(r'\b%ss?\b' % re.escape(searchterm))
if any(regex.search(s) for s in text[k]) ...