我从git log中具有多线字符串并想用超链接替换匹配的线但是,用凹槽保持原始字符串的某些部分。
示例:
commit 7a1825abc69f1b40fd8eb3b501813f21e09bfb54
Author: Filip Stefanov
Date: Mon Nov 21 11:05:08 2016 +0200
TICKET-1
Test change
Change-Id: I7b4028e504de6c4a48fc34635d4b94ad038811a6
应该看起来像:
commit 7a1825abc69f1b40fd8eb3b501813f21e09bfb54
Author: Filip Stefanov
Date: Mon Nov 21 11:05:08 2016 +0200
<a href=http://localhost:8080/browse/TICKET-1>TICKET-1</a>
Test change
<a href=http://localhost:8081/#/q/I7b4028e504de6c4a48fc34635d4b94ad038811a6,n,z>Change-Id: I7b4028e504de6c4a48fc34635d4b94ad038811a6</a>
我在Groovy Regex中非常糟糕
mystring.replaceAll(/TICKET-/, "http://localhost:8080/browse/TICKET-")
注意:票证{int}和change-id {hash}是变量
mystring.replaceAll(/(TICKET-d++)/, '<a href="http://localhost:8080/browse/$1">$1</a>')
.replaceAll(/Change-Id: (Ip{XDigit}++)/, '<a href="http://localhost:8081/#/q/$1,n,z">Change-Id: $1</a>')
当然,您必须相应地替换动态零件。目前,它是TICKET-
之后至少一个数字,然后是I
,然后在Change-ID:
之后至少一个十六进制。