git diff
有选项 --word-diff-regex=<...>
匹配单词。某些语言有特殊的默认值(如 man 5 gitattributes
中所述)。但这些是什么?文档中没有描述,我查找了git
的来源, 也没找到。
有什么想法吗?
编辑:我在 git 1.9.1
,但我会接受任何版本的答案。
最佳答案
来源包含 userdiff.c
中的默认单词正则表达式文件。 PATTERNS
和 IPATTERN
宏将基本词正则表达式作为它们的第三个参数,并添加 "|[^[: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/