Erstellen Sie in Python HTML, um die Unterschiede zwischen zwei einfachen Zeichenfolgen hervorzuheben

StackOverflow https://stackoverflow.com/questions/9396254

  •  29-10-2019
  •  | 
  •  

Frage

Ich muss die Unterschiede zwischen zwei einfachen Zeichenfolgen mit Python hervorheben und die unterschiedlichen Teilzeichenfolgen in ein HTML-Span-Attribut einschließen.Daher suche ich nach einer einfachen Möglichkeit, die im folgenden Beispiel veranschaulichte Funktion zu implementieren:

hightlight_diff('Hello world','HeXXo world','red')

... sollte die Zeichenfolge zurückgeben:

'He<span style="color:red">XX</span>o world'

Ich habe Difflib gegoogelt und gesehen, aber es soll veraltet sein und ich habe keine gute einfache Demo gefunden.

War es hilfreich?

Lösung

Alles, was Sie brauchen, kommt aus difflib - zum Beispiel:

>>> import difflib
>>> d = difflib.Differ()
>>> l = list(d.compare("hello", "heXXo"))
>>> l
['  h', '  e', '- l', '- l', '+ X', '+ X', '  o']

Jedes Element in dieser Liste ist ein Zeichen aus Ihren beiden Eingabezeichenfolgen mit dem Präfix

  • " " (2 Leerzeichen), Zeichen an dieser Position in beiden Zeichenfolgen
  • "- " (Bindestrich), Zeichen an dieser Position in der ersten Zeichenfolge
  • "+ " (plus Leerzeichen), Zeichen an dieser Position in der zweiten Zeichenfolge.

    Durchlaufen Sie diese Liste, und Sie können genau die Ausgabe erstellen, die Sie erstellen möchten.

    In den Dokumenten wird nicht erwähnt, dass Difflib in irgendeiner Weise veraltet oder veraltet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top