Quindi, voglio essere in grado di trovare il diff tra due stringhe su una parola per parola (forse più veloce di per carattere, però, se per carattere è più veloce allora vorrei farlo in quel modo).Qual è l'algoritmo di diff (basato sulla parola o il carattere) migliore là fuori?
Ecco un esempio di quello che voglio raggiungere: Testo Fonte:
Hello there!
testo modificato:
Helay scere?
diff:
Hel[lo](ay) [th](sc)ere[!](?)
- il testo tra parentesi quadre è ciò che è stato rimosso, il parentetico il testo è quello che è stato aggiunto
non è una specie di un modo super hacker per farlo utilizzando uno strumento a riga di comando, come ad esempio opendiff, ma richiede un carattere di nuova riga inbetween ogni personaggio, come opendiff è la linea-based.
Sto usando ruby e non ho trovato alcuno strumento per farlo ... ma il linguaggio non è terribilmente importante, dato che gli algoritmi possono essere facilmente trasferiti.
grazie.
Perché hai menzionato gli strumenti esistenti, dovrei puntare al wdiff (word diff) e al dwdiff (delimitato diff word) utilità unix. Ho hackerato insieme alcune utility Unix con bash per convertire dwdiff in uno strumento semi-grafico [qui] (https://github.com/masukomi/cleandiff). I commenti alla fonte mostrano un paio di modi per usarlo. – masukomi