比较两个字符串以识别它们的公共子字符串是字符串操作中的一项基本任务。本综合指南展示了基于 Python 的解决方案,利用 difflib 模块有效地执行此操作。
使用 difflib 的 Find_Longest_Match 方法
difflib 模块是 Python 标准库的一部分,提供了一个序列数组-比较实用程序。其中,find_longest_match 查找两个字符串之间的最长公共子字符串。
考虑两个字符串:
string1 = "apple pie available" string2 = "come have some apple pies"
使用 find_longest_match 查找它们的公共子字符串:
from difflib import SequenceMatcher match = SequenceMatcher(None, string1, string2).find_longest_match() print(match) # -> Match(a=0, b=15, size=9) print(string1[match.a:match.a + match.size]) # -> apple pie print(string2[match.b:match.b + match.size]) # -> apple pie
中在本示例中,输出为:
Match(a=0, b=15, size=9) apple pie apple pie
这表示最长的公共子字符串是“apple pie”,并且两个字符串共享此子字符串。
与 Python 版本的兼容性
对于 3.9 之前的 Python 版本,find_longest_match() 方法需要稍微不同的参数:
SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
以上是如何使用 difflib 发现 Python 中的公共子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!