git - 什么是 `git diff --word-diff' 默认正则表达式?

标签 git git-diff word-diff

git diff有选项 --word-diff-regex=<...>匹配单词。某些语言有特殊的默认值(如 man 5 gitattributes 中所述)。但这些是什么?文档中没有描述,我查找了git的来源, 也没找到。

有什么想法吗?

编辑:我在 git 1.9.1 ,但我会接受任何版本的答案。

最佳答案

来源包含 userdiff.c 中的默认单词正则表达式文件。 PATTERNSIPATTERN 宏将基本词正则表达式作为它们的第三个参数,并添加 "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" 以确保所有不属于较大单词的非空白字符都被自己视为一个单词,并假设为 UTF-8,而不拆分多个-字节字符。例如,在:

PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",
         "\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+"),

单词正则表达式是 "\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+|[^[ :space:]]|[\xc0-\xff][\x80-\xbf]+".

在这种情况下,|[\xc0-\xff][\x80-\xbf]+ 恰好没有任何好处,因为 [\xc0-\xff][\x80-\xbf]+ 已经包含在 [a-zA-Z0-9\x80-\xff]+ 中,但它也不会造成任何伤害.

关于git - 什么是 `git diff --word-diff' 默认正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30428377/

相关文章:

php - 我如何在学校使用我的 Git

Git diff 不显示新添加文件的更改

git - 如何使用 git --word-diff 显示空格差异?

git diff --word-diff 与单行文件

xcode - Git 和 Xcode : Why do I have to agree to Xcode's T&Cs to use Git?

java - 如何测试文件提取

任何存储库之外的自定义 2 文件的 git diff?

git - 如何让 'git diff'忽略评论

c# - .NET 中两个字符串的逐字差异比较

git - 哪个是更好的提交工具,qct 或 hgct/gct?