Groovy 字符串替换为 link
Groovy String replacement with link
我有来自 git 登录变量的多行字符串
并想用超链接替换匹配的行
但保留原始字符串的某些部分 Groovy.
示例:
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 正则表达式非常糟糕,到目前为止还不知道如何使用分组或闭包:
mystring.replaceAll(/TICKET-/, "http://localhost:8080/browse/TICKET-")
注意:
TICKET {int} 和 Change-Id {hash} 是变量
mystring.replaceAll(/(TICKET-\d++)/, '<a href="http://localhost:8080/browse/"></a>')
.replaceAll(/Change-Id: (I\p{XDigit}++)/, '<a href="http://localhost:8081/#/q/,n,z">Change-Id: </a>')
当然要相应地更换动态部分。目前它至少是 TICKET-
和 I
之后的一位数字,然后是 Change-ID:
.
之后的至少一位十六进制数字
我有来自 git 登录变量的多行字符串
并想用超链接替换匹配的行
但保留原始字符串的某些部分 Groovy.
示例:
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 正则表达式非常糟糕,到目前为止还不知道如何使用分组或闭包:
mystring.replaceAll(/TICKET-/, "http://localhost:8080/browse/TICKET-")
注意: TICKET {int} 和 Change-Id {hash} 是变量
mystring.replaceAll(/(TICKET-\d++)/, '<a href="http://localhost:8080/browse/"></a>')
.replaceAll(/Change-Id: (I\p{XDigit}++)/, '<a href="http://localhost:8081/#/q/,n,z">Change-Id: </a>')
当然要相应地更换动态部分。目前它至少是 TICKET-
和 I
之后的一位数字,然后是 Change-ID:
.