标签: word-diff

突出显示PHP中两个字符串之间的差异

在PHP中突出显示两个字符串之间差异的最简单方法是什么?

我正在考虑Stack Overflow编辑历史记录页面,其中新文本为绿色,删除的文本为红色.如果有任何预先编写的函数或类可用,那将是理想的.

php string diff word-diff

134
推荐指数
7
解决办法
10万
查看次数

突出显示每个更改行中更改的行和更改的字节

开源项目Trac有一个出色的差异荧光笔 - 它突出显示每个更改行中更改的行和更改的字节!请参阅此处此处的示例.

有没有办法在bash终端中使用相同的颜色突出显示(即更改的行和更改的字节)git,或者vim 用于diff输出(补丁文件)?

git vim diff highlight word-diff

79
推荐指数
8
解决办法
2万
查看次数

如何在Git存储库外使用`git diff --color-words`?

如何获得输出 git diff --color-words,但在Git之外?

最近的事情是wdiff -t,但它强调/反转事物而不是使用绿色/红色,并且不允许指定我的空白正则表达式.

git diff colors cpu-word word-diff

58
推荐指数
2
解决办法
2万
查看次数

如何优化此Python代码以生成word-distance 1的所有单词?

分析显示这是我写的一个小字游戏的代码中最慢的部分:

def distance(word1, word2):
    difference = 0
    for i in range(len(word1)):
        if word1[i] != word2[i]:
            difference += 1
    return difference

def getchildren(word, wordlist):
    return [ w for w in wordlist if distance(word, w) == 1 ]
Run Code Online (Sandbox Code Playgroud)

笔记:

  • distance()被调用超过500万次,其中大部分是来自getchildren,它应该让wordlist中的所有单词与word1个字母完全不同.
  • wordlist被预先过滤为只有包含相同数量字母的单词,word所以它保证word1word2具有相同数量的字符.
  • 我是Python的新手(3天前开始学习它)所以对命名约定或其他风格的东西的评论也很受欢迎.
  • 对于wordlist,使用"2 + 2lemma.txt"文件获取12dict单词列表

结果:

谢谢大家,通过不同建议的组合,我现在运行程序的速度提高了两倍(除了我自己在询问之前做的优化之外,所以从初始实现开始,速度提高了4倍)

我测试了2组输入,我称之为A和B.

优化1:迭代word1,2 ...的索引

for i in range(len(word1)):
        if word1[i] != word2[i]:
            difference += 1
    return difference
Run Code Online (Sandbox Code Playgroud)

使用迭代迭代字母对zip(word1, word2)

for x,y in zip …
Run Code Online (Sandbox Code Playgroud)

python optimization python-2.x levenshtein-distance word-diff

32
推荐指数
3
解决办法
4990
查看次数

如何找到两个字符串之间的区别?

我有两个字符串,想要显示它们之间的区别.例如,如果我有"我来自火星"和"我来自金星"字符串,输出可能是"我来自维纳斯 ".(通常用于显示审核日志中的更改等)

有一个简单的算法吗?我正在使用C#,但我想可以从任何编程语言改编通用算法.

或者是否有框架类/第三方库将执行此类操作?

c# string word-diff

25
推荐指数
1
解决办法
3万
查看次数

显示差异输出中一行内的差异

此StackOverflow答案具有KDiff3的图像,突出显示行内差异.有人知道一个工具可以在命令行上显示相同的(例如,通过颜色)吗?

想到这一点的另一种方法是想要在补丁文件中区分每个差异.

diff patch word-diff

18
推荐指数
3
解决办法
9934
查看次数

忽略换行符的Diff工具

我经常需要比较SQL过程以确定最新版本中的更改.问题是,每个人都有自己的格式化风格,并且SQL(通常)并不关心放置换行符的位置(例如,在每行AND之前,所有子句都在一行中而不是新行).

这使得查看实际差异非常困难(特别是对于长程序而言).我似乎无法找到一个免费的差异/合并实用程序,它将允许我忽略换行符(即视为空格).到目前为止,我已经尝试过WinMerge和Beyond Compare而没有任何运气.有没有人知道一个diff工具(理想情况下是免费的)会看到这两个例子是相同的?

防爆.1:

the quick
brown
Run Code Online (Sandbox Code Playgroud)

防爆.2:

the
quick
brown
Run Code Online (Sandbox Code Playgroud)

提前致谢.

sql diff merge newline word-diff

18
推荐指数
2
解决办法
7585
查看次数

如何使用c#显示单词差异?

我想展示两个文本块之间的差异.我只想比较由指定字符分隔的单词(例如'\n','','\ t'),而不是比较文本行或单个字符.我的主要推理是,我将要比较的文本块通常没有很多换行符,字母比较可能很难遵循.

在C#中遇到了以下O(ND)逻辑,用于比较行和字符,但我对如何修改它来比较单词感到茫然.

另外,我想跟踪单词之间的分隔符,并确保它们包含在diff中.因此,如果一个空间被硬回归所取代,我希望这可以作为差异.

我正在使用Asp.Net(c#)来显示整个文本块,包括已删除的原始文本和添加的新文本(两者都将突出显示以显示它们已被删除/添加).可以理解与这些技术一起使用的解决方案.

任何关于如何实现这一点的建议表示赞赏.

c# diff word-diff

18
推荐指数
1
解决办法
9049
查看次数

newline-ignoring diff/diff跨越多行/ reflow-ignoring diff

有没有人知道类似diff的工具可以显示两个文本文件之间的变化,但忽略包括换行符在内的空白变化?

这是一个例子:

the quick brown fox jumped over the lazy bear.  the quick brown fox
jumped over the lazy bear.  the quick brown fox jumped over the lazy
bear.  the quick brown fox jumped over the lazy bear.
quick brown fox jumped over the lazy bear.  the quick brown fox jumped
over the lazy bear.  the quick brown fox jumped over the lazy bear.
the quick brown fox jumped over the lazy bear.

我所做的只是删除一个单词然后重排它,但是"diff -b"检测到每一行的变化(因为它应该;我不是说这是差异中的一个错误).但对于大型LaTeX文件,这是一个主要问题; 改变一个长段中的一个单词,你得到的差异基本上没用.

顺便说一句,我知道这需要比通常的线 - …

diff word-diff

15
推荐指数
1
解决办法
3969
查看次数

可以在github中启用word-diff选项来查看对行的更细粒度的更改吗?

我正在探索使用github进行文本版本控制.github的一个主要问题是更改是按行进行的.因此,如果您进行相当细化的单词或短语更改,则整行显示已更改.

在git本身,有一个解决方案,因为您可以激活命令--word-diff上的选项git diff.你最终得到了看起来像这样的好差异:

在github中是否有任何支持?某种查询参数的一个可添加到URL,类似于空白排除选项?w=1

git github word-diff

15
推荐指数
1
解决办法
689
查看次数