use*_*576 1 python string string-matching
我正在尝试解决文本匹配问题,其中我试图在没有错误匹配的产品列表之间找到匹配.行进是通过文本相似性完成的.问题在于假设我"product G1234"在一个列表中,而在另一个列表 "product G1"中,这两个元素的所有其他特征是相同的.将 string operator in在python是不是一个好的选择这里,因为它的这两款产品相匹配(它不应该),任何人有什么建议吗?
使用使用单词边界\b进行精确单词匹配的正则表达式.\b单词字符和非单词字符之间的匹配(反之亦然).这里你不能使用拆分,因为你要检查的子字符串在中间包含一个空格.
\bsub_string\b
Run Code Online (Sandbox Code Playgroud)
例:
>>> 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'>
>>>
Run Code Online (Sandbox Code Playgroud)
要么
>>> 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")
>>>
Run Code Online (Sandbox Code Playgroud)