使用通配符搜索列表中的任何字符串
search any string in list with wildcard
我有这段代码
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?" 或类似词中检测到。
上面的代码是否有任何简单的添加,或者是否需要其他搜索方法?
编辑:总体目标是找到搜索词出现的文本。一点差异(例如复数)有助于识别更多具有相同语义上下文的文本。
re 模块可以做到这一点
regex = re.compile(r'\b%ss?\b' % re.escape(searchterm))
if any(regex.search(s) for s in text[k]) ...
我有这段代码
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?" 或类似词中检测到。
上面的代码是否有任何简单的添加,或者是否需要其他搜索方法?
编辑:总体目标是找到搜索词出现的文本。一点差异(例如复数)有助于识别更多具有相同语义上下文的文本。
re 模块可以做到这一点
regex = re.compile(r'\b%ss?\b' % re.escape(searchterm))
if any(regex.search(s) for s in text[k]) ...