ホームページ >バックエンド開発 >Python チュートリアル >difflib を使用して Python で共通の部分文字列を検出するにはどうすればよいですか?
2 つの文字列を比較して共通部分文字列を識別することは、文字列操作の基本的なタスクです。この包括的なガイドでは、この操作を効率的に実行するために difflib モジュールを利用した Python ベースのソリューションを紹介します。
difflib の Find_Longest_Match メソッドを使用する
Python の標準ライブラリの一部である difflib モジュールは、シーケンスの配列を提供します。 -比較ユーティリティ。その中で、find_longest_match は 2 つの文字列の間で最も長い共通部分文字列を見つけます。
2 つの文字列を考えます:
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
Inこの例の出力は次のとおりです。
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 中国語 Web サイトの他の関連記事を参照してください。