У меня есть строка с несколькими строками из git log в переменной и вы хотите заменить строки с гиперссылками , но сохраните некоторые части оригинальной строки с Groovy.
Groovy String заменяем ссылкой
Пример:
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>
Im очень плохо в Groovy регулярных выражений не знаю, как использовать группировку или закрытия до сих пор так хорошо:
mystring.replaceAll(/TICKET-/, "http://localhost:8080/browse/TICKET-")
ПРИМЕЧАНИЕ: TICKET {int} и Change-Id {hash} являются переменными
Попробуйте что-нибудь вроде этого: mystring.replaceAll (/ (БИЛЕТ -.) /, "Url \ 1"). \ 1 - это группа, которую вы сопоставляете. – MYGz
Попробуйте '.replaceAll (/ (? M)^([\ \ t] +) (TICKET- \ d +) (\ R {2}. * \ R {2} \ s +) (Change-Id: \ s +) (\ S +) /, "$ 1 $2 $ 3 $ 4 $4$5") ', здесь [regex demo] (https://regex101.com/r/9vKjYE/1). –