在列表中查找单词/元素并返回匹配的值

时间:2019-02-26 18:34:38

标签: python list

我正在努力解决以下问题。我有两个列表:wordListmyLIST

目标是检查wordList中的任何元素是否也位于myList中。然后应该返回匹配的值。

脚本如下:

import re

myList = ['volkswagen-ag','audi-ag','lamborghini-ag']  
wordList = ['volkswagen','audi','lamborghini'] 


def findWholeWord(w):
    return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search

    for x in myList:
        b = findWholeWord(y)(x)
        print(b)

它产生以下结果:

<re.Match object; span=(0, 10), match='volkswagen'>
None
None
None
<re.Match object; span=(0, 4), match='audi'>
None
None
None
<re.Match object; span=(0, 11), match='lamborghini'>

如何获取myLIST中匹配字段的值(例如:"Volkswagen"应该返回"volkswagen-ag"?我只是另一个博客条目的解决方案。

我想创建一个具有匹配值的新列表。

1 个答案:

答案 0 :(得分:0)

您要包括单词边界,但您不包括搜索词之后的字符。您应该将正则表达式更新为r'\b({0}[^\s]+)\b'。这将在您的搜索词之后提取所有非空格字符。