Also, ich möchte in der Lage sein, den Unterschied zwischen zwei Zeichenketten auf einer Wortbasis zu finden (vielleicht schneller als pro Zeichen, obwohl, wenn pro Zeichen schneller ist, würde ich es so machen wollen) .
Hier ist ein Beispiel für das, was ich erreichen möchte: Quelltext:
%Vor%Geänderter Text:
%Vor%diff:
%Vor%es gibt eine Art super hackish Weg, dies mit einem Kommandozeilen-Tool, wie opendiff , aber es erfordert einen Zeilenumbruch Zeichen zwischen jedem Zeichen, da openend linienbasiert ist.
Ich benutze Ruby und habe keine Werkzeuge dafür gefunden ... aber Sprache ist nicht sehr wichtig, da Algorithmen ziemlich einfach portiert werden können.
danke.
Hier ist ein Ruby-Juwel, das Streicher differiert: Ссылка
Vor der Hand habe ich gerade (in irb)
%Vor%
Somit wird das Schreiben der zu einzufügenden Logik, der entfernten und eingefügten Markerseiten dank dieses 2D-Diff-Array von Änderungen trivial.
Obwohl ich mir nicht sicher bin, ob das der beste Weg ist.
Sie können dies überprüfen: Ссылка . Es ist nicht schwer zu implementieren.
Was Sie also tun können, verwenden Sie wiederholt die LCS (wie oben verlinkt), um alle gängigen Strings zu finden, und entfernen Sie sie von beiden Strings, ersetzen Sie sie durch einen anderen String - sagen wir einfach ein "*". Dann durchlaufen Sie beide Zeichenketten gleichzeitig und mesh das Gemeinsame und das Unterteil wieder zusammen.
Beispiel
%Vor%Und von hier aus musst du einfach Meshing machen. Etwas zu beachten ist, dass es möglicherweise Null Einträge gibt, zum Beispiel, wenn Sie diese Methode auf "Hell" und "Hel" machen, werden Sie schließlich
bekommen %Vor%Hoffentlich ist das akzeptabel.