如何配置git word-diff-regex以对比CSV文件的单列变更?
解决Git Diff对比CSV时整行变色的问题
正确的正则表达式
使用以下命令即可让Git仅高亮变更的单列内容:
git diff --no-index --word-diff=color --word-diff-regex='[^,]+(?:,|$)' file1.csv file2.csv
为什么之前的.*,不生效
.*,是贪婪匹配模式,会从行首一直匹配到该行最后一个逗号,把整行除最后一列外的所有内容都当成一个“单词”。Git对比时会将这个大的“单词”视为整体,导致未修改的列也被标记为变更,无法实现仅高亮单列的需求。
正则表达式解析
[^,]+:匹配任意非逗号的字符序列,对应CSV的单个字段内容(?:,|$):非捕获分组,匹配字段后的逗号(中间列场景)或者行尾(最后一列场景),确保每个字段都能被识别为独立的“单词”
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

