In python, produce HTML highlighting the differences of two simple strings
我需要用 python 突出显示两个简单字符串之间的差异,将不同的子字符串包含在 HTML 跨度属性中。所以我正在寻找一种简单的方法来实现以下示例所示的功能:
...它应该返回字符串:
我已经用谷歌搜索并看到了提到的 difflib,但它应该已经过时了,我还没有找到任何好的简单演示。
您需要的一切都来自 difflib -- 例如:
1 2 3 4 5 | >>> import difflib >>> d = difflib.Differ() >>> l = list(d.compare("hello","heXXo")) >>> l [' h', ' e', '- l', '- l', '+ X', '+ X', ' o'] |
该列表中的每个元素都是来自您的两个输入字符串的一个字符,前缀为
-
" " (2 个空格),两个字符串中该位置的字符 -
"-" (破折号空格),出现在第一个字符串中该位置的字符 -
"+" (加空格),出现在第二个字符串中该位置的字符。
遍历该列表,您可以准确地构建您想要创建的输出。
文档中没有提到 difflib 以任何方式过时或弃用。