我正在努力解决以下问题。我有两个列表:wordList
和myLIST
目标是检查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"
?我只是另一个博客条目的解决方案。
我想创建一个具有匹配值的新列表。
答案 0 :(得分:0)
您要包括单词边界,但您不包括搜索词之后的字符。您应该将正则表达式更新为r'\b({0}[^\s]+)\b'
。这将在您的搜索词之后提取所有非空格字符。