Skip to main content
 首页 » 编程设计

python之如何区分子字符串和确切的单词

2025年05月04日71shanyou

我正在尝试解决一个文本匹配问题,在该问题中,我试图找到没有错误匹配的产品列表之间的匹配项。行进是通过文本相似性完成的。问题是,假设我在一个列表中有 "product G1234",在另一个列表中有 "product G1",这两个元素的所有其他功能都相同。 python 中的 string operator in 在这里不是一个好的选择,因为它匹配这两个产品(而且不应该),有人有什么建议吗?

请您参考如下方法:

使用使用单词边界 \b 的正则表达式来进行精确的单词匹配。 \b 匹配单词字符和非单词字符(反之亦然)。在这里您不能使用 split,因为您要检查的子字符串中间包含一个空格。

\bsub_string\b 

示例:

>>> re.search(r'\bproduct G1\b', "product G1234") 
>>> re.search(r'\bproduct G1\b', "product G1") 
<_sre.SRE_Match object; span=(0, 10), match='product G1'> 
>>>  

>>> re.search(r'(?<!\S)product G1(?!\S)', "product G1") 
<_sre.SRE_Match object; span=(0, 10), match='product G1'> 
>>> re.search(r'(?<!\S)product G1(?!\S)', "product G1234") 
>>>