我想找到以下两个字符串之间的公共字符串: 字符串列表=['PS1 123456测试','PS1 758922测试','PS1 978242测试']
下面的代码只返回第一部分“PS1”,我可以想象结果是“PS1测试”。你能帮我一下吗,可以用SequenceMatcher获得吗?提前谢谢你
def findCommonStr(strings_list: list) -> str:
common_str = strings_list[0]
for i in range(1, n):
match = SequenceMatcher(None, common_str, strings_list[i]).get_matching_blocks()[0]
common_str = common_str[match.b: match.b + match.size]
common_str = common_str.strip()
return common_str
这是没有SequenceMatcher方法的。如果所有字符串都遵循相同的模式,则可以将它们拆分为空白处的单词
现在,您可以简单地进行一组交集来查找公共元素。参考:Python -Intersection of multiple lists?
只有遵循这种由空格分隔的模式,这才有效。
功能:
您需要保留所有片段,而不仅仅是第一个片段:
给
这个问题很棘手,所以这个启发式可能并不总是有效的,请随意想出另一个!看起来SequenceMatcher在你的案子中做得很好。我们得到的不仅仅是普通的单词,还有单词片段,非常令人印象深刻
相关问题 更多 >
编程相关推荐