当使用if-in语句时,有没有一种方法可以获得全文搜索匹配



我正在处理一个搜索问题,并且在使其工作时遇到问题。所以我想做的是:

bus_name = 'GUARDFORCE AI'
description = 'GUARDFORCE AI CO LIMITED AI GFAIW RIVERSOFT INC PEAKWORK COMPANY GFAIS CONCIERGE GUARDFORCE AI RIVERSOFT ROBOT TRAVEL AGENCY'
# # Solution 1
if bus_name in description:
print('Yes')
else:
print('No')

如果我将bus_name更改为"GUARDFORCE A",它仍然会说"是",但我希望它说"否"。我只是在寻找完整的比赛,而不是部分比赛。有什么办法让它发挥作用吗?

我会使用正则表达式匹配来实现这一点。正则表达式允许您定义只想匹配整个单词。您可以通过使用"\b"regex术语来匹配单词边界来实现这一点。以下是使用您提供的两个案例的说明:

import re
description = 'GUARDFORCE AI CO LIMITED AI GFAIW RIVERSOFT INC PEAKWORK COMPANY GFAIS CONCIERGE GUARDFORCE AI RIVERSOFT ROBOT TRAVEL AGENCY'
print('Yes' if re.match(r'bGUARDFORCEbs+bAIb', description) else 'No')
print('Yes' if re.match(r'bGUARDFORCEbs+bAb', description) else 'No')

结果:

Yes
No

您可能希望将匹配的正则表达式的创建参数化,这样就不必每次都重复表达式的形式。这个例子只是向您展示正则表达式如何解决您所问的特定问题的基本知识。

最新更新