文字列操作の領域では、2 つの文字列を比較し、重複する部分を抽出することが必要になることがよくあります。共通部分文字列の検索として知られるこのタスクは、さまざまなアプローチを使用して達成できます。
1 つの強力な解決策は、Python ライブラリ difflib、特にその find_longest_match 関数にあります。この関数は、指定された 2 つの文字列間の最も長い共通部分文字列を細心の注意を払って識別します。
<code class="python">from difflib import SequenceMatcher # Example 1 string1 = "apples" string2 = "appleses" match = SequenceMatcher(None, string1, string2).find_longest_match() common_substring = string1[match.a:match.a + match.size] # "apples" # Example 2 string1 = "apple pie available" string2 = "apple pies" match = SequenceMatcher(None, string1, string2).find_longest_match() common_substring = string1[match.a:match.a + match.size] # "apple pie" print(common_substring)</code>
古いバージョンの Python (3.9 より前) では、find_longest_match 関数には追加の引数が必要です:
<code class="python"># Python versions prior to 3.9 match = SequenceMatcher(None, string1, string2).\ find_longest_match(0, len(string1), 0, len(string2))</code>
difflib ライブラリを利用することで、シーケンス比較のための堅牢な関数セットにアクセスできるようになり、2 つの文字列間の共通部分文字列をシームレスに抽出できるようになります。
以上がPython で 2 つの文字列間の最長の共通部分文字列を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。