如何从字符串python打印完全匹配的单词

时间:2018-07-26 18:49:55

标签: python string

categories = [
    'java', 'java developer', 'hadoop', 'Hadoop kafka',
    'html developer', 'hibernate', 'text',
    'big data developer', 'data stage developer']

str = "looking for hadoop developer with java knowledge" 
ans = [i for i in categories 
          if all([j in str.split() for j in i.split()])]

输出:

['java','java developer','hadoop']

“ java开发人员”不应打印。

我正在寻找完全匹配的单词和短语。 真实类别列表包含7k个元素。

1 个答案:

答案 0 :(得分:1)

您完全得到了您想要的内容也就不足为奇了:每个单词出现在目标字符串中任何位置的短语。由于“ java”和“ developer”都出现在目标中,因此结果中包含“ java developer”。

如果您只希望完全匹配词组,则可以简化搜索:

ans = [i for i in categories if i in str]

我相信这可以解决您遇到的问题。

给出:

categories = [
    'java', 'java developer', 'hadoop', 'Hadoop kafka',
    'html developer', 'hibernate', 'text',
    'big data developer', 'data stage developer']

str = "looking for hadoop developer with java knowledge" 

输出:

['java', 'hadoop']

如果我们更改str

str = "looking for java developer with hadoop knowledge" 

输出更改为

['java', 'java developer', 'hadoop']

换句话说,我的原始帖子可以解决您的原始问题和扩展的问题。