python 精确子串匹配

pd1*_*176 3 python regex

我有一份菜品清单和一句话。

我想检查句子中是否存在菜肴。但是,如果我做一个正常的

if dish in sentence:
Run Code Online (Sandbox Code Playgroud)

我基本上会得到一个子字符串匹配。我的问题是说我有一个

dish='puri'
sentence='the mutton shikampuri was good'
Run Code Online (Sandbox Code Playgroud)

上面的代码仍然将 puri 与 shikampuri 匹配,这是我不想要的。

如果我尝试标记该句子,我将无法匹配诸如菜肴='puri bhaji'之类的菜肴

有什么方法可以忽略不以我的菜肴字符串开头的匹配项吗?基本上,当我的菜是“puri”时,我想忽略“shikampuri”之类的模式。

vks*_*vks 5

你需要的是re.search\b.

import re
if re.search(r"\b"+dish+r"\b",sentence):
Run Code Online (Sandbox Code Playgroud)