比較兩個字串以識別它們的公共子字串是字串操作中的一項基本任務。本綜合指南展示了基於 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中文網其他相關文章!