在列表中查找术语

时间:2018-07-29 04:09:59

标签: python

我有以下代码可在用户个人资料中找到关键字:

    profile_text = self.text.lower()
    term_string = ''
    TERMS = ['spring',  'java', 'angular', 'elastic', 'css']
    for term in TERMS:
        if term in profile_text: term_string += term.strip() + ', '
    return term_string.strip(' ,')

这将返回类似:

"spring, angular, css"

但是,如果用户使用诸​​如“ javascript”之类的单词,它也会返回“ java”。有什么好的方法可以防止这种情况发生?

1 个答案:

答案 0 :(得分:3)

您应该使用正则表达式。

您可以执行以下操作:

import re

TERMS = ['spring',  'java', 'angular', 'elastic', 'css']
matched_terms = []
for term in TERMS:
    if re.search(r'\b{}\b'.format(term), profile_text, re.M):
        matched_terms.append(term)
return ', '.join(matched_terms)