J'aimerais convertir la sortie de exemple de sortie espéré: p>
pourquoi sommes-nous em> Un des nombreux
Les difficultés sont que la production de diff est orientée ligne, où je veux
voir les différences de mots individuels. Est-ce que quelqu'un a des suggestions comme
à quel algorithme utiliser, ou quel logiciel pour construire sur? p> diff code> (sur un fichier de marquage) à
Marquage avec
code> et code> tags, afin que je puisse voir ce qui a
été supprimé ou ajouté à une nouvelle version d'un document. (Ce genre de
Le traitement est très courant pour les documents juridiques.) p>
pas grève> pas em> dans l'ordre à ... p>
blockQuote>
3 Réponses :
Utilisez WDIFF . Il fait déjà la comparaison mot-parole que vous recherchez; Conversion de sa sortie en marquage doit prendre quelques-quelques expressions régulières simples.
Par exemple: P>
$ wdiff -w '<em>' -x '</em>' -y '<strike>' -z '</strike>' foo bar <em>Why do we</em><strike>We</strike> study programming <em>languages? Not</em> <strike>languages not</strike> in order to
Vous n'avez pas spécifié la plate-forme cible, mais en supposant si vous utilisez .net, vous devez définitivement consulter cet article sur CODEPROJECT http://www.codeproject.com/kb/recipes/diffengine.aspx p>
Le moteur DIFF effectue une comparaison et vous renvoie l'objet logique qui peut appliquer votre propre formatage d'affichage visuel. Je l'ai utilisé dans plusieurs projets dont l'un était une comparaison de texte basée sur le Web et nous avons pu introduire tous ces balises comme vous le souhaitez ci-dessus. J'ai également étendu le moteur avec de nouvelles classes pour faire des comparaisons de type ligne personnalisées. p>
Utilisez wdiiff code> ou
git -word-diff code> Seut de sortie dans Markdown, vous permettant ainsi d'utiliser votre prévisualiseur ou votre compilateur préféré pour examiner les modifications. (Markdown-diff a été écrit par moi-même, inspiré par Réponse de Adam Rosenfield .) P>