Ich versuche, übereinstimmende Blöcke zwischen zwei Strings mit Pythons SequenceMatcher
zu finden. Die Zeichenfolgen sind "ABCDPQRUVWXYZ"
und "PQRABCDUVWXYZ"
. Wenn ich jedoch get_matching_blocks()
anwende, wird die Zeichenfolge "PQR"
nicht als ein übereinstimmender Block gefunden.Python Sequence Matcher gibt unvollständige Übereinstimmung
from difflib import SequenceMatcher
str1 = "ABCDPQRUVWXYZ"
str2 = "PQRABCDUVWXYZ"
matchAll = SequenceMatcher(None, str1, str2, False).get_matching_blocks()
for i in range(0, len(matchAll)):
print(str1[matchAll[i].a: matchAll[i].a + matchAll[i].size])
Warum haben Sie erwartet, dass 'PQR' gefunden wird? Es klingt wie die Aufgabe, die Sie ausführen möchten, ist nicht die Aufgabe, für die 'difflib.SequenceMatcher' geschrieben wurde. – user2357112
verwendet "difflib.SequenceMatcher" eine Anforderung zum Markieren einer Antwort als richtig? Bist du verpflichtet, diese Bibliothek zu benutzen? – s2t2
docs: https://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks – innisfree