首页 > 解决方案 > git中--word-diff的正则表达式

问题描述

我正在尝试更新三个正则表达式来识别 git 日志中的模式。基本上,它们是用于在运行git diff ---word-diff --unified=0命令时从 git 注释中识别代码行添加、修改和删除的表达式。

表达式是:

修改.+(\[-|\{\+).*$

添加\{\+.*\+\}$

删除\[-.*-\]$

最初,这些表达式是在这个问题中提出的:Is there a way to have a way to have a git show lines added, lines changed and lines removed?. 但是今天,显然,它们不再按应有的方式工作,因为在这里进行测试时,我发现了与实际应有的数字不同的数字

对于以下代码,它引入了不同数量的删除和修改:

@@ -11 +11 @@ delta dAddressBook {
                        private String [-addressA;-]{+address;+}
@@ -13 +13 @@ delta dAddressBook {
                        public [-AddressBookEntryB()-]{+AddressBookEntry()+} {
@@ -39,0 +40,4 @@ delta dAddressBook {

                        {+public void setAddress(String address) {+}
{+                              this.address = address;+}
{+                      }+}
@@ -45,2 +48,0 @@ delta dAddressBook {
[-              import br.unb.cic.iris.core.exception.EmailException;-]
[-              import br.unb.cic.iris.core.model.AddressBookEntry;-]

https://regex101.com/r/Soeey3/1/

出于某种原因,它与此示例中的第 7 行 ( {+public void setAddress(String address) {+}) 匹配,其中该行应考虑添加而不是修改。同样,加法表达式与第 7 行不匹配。

标签: regexgit

解决方案


推荐阅读