【问题标题】:python exact substring matchpython精确子字符串匹配
【发布时间】:2016-03-08 10:13:15
【问题描述】:

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

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

if dish in sentence:

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

dish='puri'
sentence='the mutton shikampuri was good'

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

如果我尝试对句子进行标记,我将无法匹配诸如 菜='puri bhaji'

有什么方法可以忽略不以我的菜串开头的匹配项?基本上,当我的菜是“puri”时,我想忽略像“shikampuri”这样的模式。

【问题讨论】:

  • 带 re 的单词边界
  • 你的菜名可以在句首吗?如果不是,那么我认为搜索“ puri ”可以解决您的问题,在您的菜前后有空格

标签: python regex


【解决方案1】:

您需要的是re.search\b

import re
if re.search(r"\b"+dish+r"\b",sentence):

【讨论】:

【解决方案2】:

你可以写:

if dish in sentence.split():

这会将句子按空格分割成一个列表,并在单词列表中查找一道菜。

【讨论】:

  • 这是一个漂亮、干净的单线。我喜欢它。
  • 是的。但是此解决方案将无法找到带有空格的字符串,例如菜='puri bhaji'。我错过了回答的规范。所以这里正则表达式解决方案是更好的选择。
猜你喜欢
  • 2020-10-01
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多