diff для отдельных строк - PullRequest
7 голосов
/ 09 января 2010

Все инструменты сравнения, которые я нашел, просто сравнивают строку за строкой, а не символ за символом. Есть ли библиотека, которая дает подробности о однострочных строках? Может также разница в процентах, хотя я думаю, что для этого есть отдельные функции?

Ответы [ 4 ]

5 голосов
/ 09 января 2010

Этот алгоритм отличается от слова к слову:

http://github.com/paulgb/simplediff

доступно на Python и PHP. Он может даже выплевывать вывод в формате HTML, используя теги <ins> и <del>.

4 голосов
/ 09 января 2010

Я недавно искал что-то похожее, и наткнулся на wdiff . Он работает со словами, а не с персонажами, но так ли это близко к тому, что вы ищете?

3 голосов
/ 09 января 2010

Вы можете реализовать простой алгоритм Needleman – Wunsch . Псевдокод доступен в Википедии: http://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm

3 голосов
/ 09 января 2010

То, что вы можете попробовать, это разделить обе строки символ за символом на строки, а затем вы можете использовать diff для этого. Это грязный хак, но, по крайней мере, он должен работать и его довольно легко реализовать.

В качестве альтернативы вы можете разбить строку на список символов в Python и использовать difflib. Проверьте Ссылка на Python difflib

...