用链接替换槽字符串



我从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:之后至少一个十六进制。

最新更新