我有以下代码可在用户个人资料中找到关键字:
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”。有什么好的方法可以防止这种情况发生?
答案 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)