2016-12-01 2 views
0

У меня есть строка с несколькими строками из 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} являются переменными

+0

Попробуйте что-нибудь вроде этого: mystring.replaceAll (/ (БИЛЕТ -.) /, "Url \ 1"). \ 1 - это группа, которую вы сопоставляете. – MYGz

+0

Попробуйте '.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). –

ответ

1
mystring.replaceAll(/(TICKET-\d++)/, '<a href="http://localhost:8080/browse/$1">$1</a>') 
     .replaceAll(/Change-Id: (I\p{XDigit}++)/, '<a href="http://localhost:8081/#/q/$1,n,z">Change-Id: $1</a>') 

Конечно, вы должны соответственно заменить динамические детали. В настоящее время это по меньшей мере одна цифра после TICKET- и I, а затем по меньшей мере одна шестнадцатеричная цифра после Change-ID:.

+0

Отлично! Поскольку я знаю, что идентификаторы изменений всегда имеют префикс I в Gerrit. В чем смысл \ p? –

+0

Это класс персонажа. Посмотрите на https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html для действительных – Vampire

 Смежные вопросы

  • Нет связанных вопросов^_^