2016-12-01 7 views
0

Ich habe mehrzeilige Zeichenfolge von Git Log-in Variable und wollen angepasste Linien mit Hyper-Links ersetzen aber behalten Sie einige Teile der ursprünglichen Zeichenfolge mit Groovy.
Groovy String Ersatz mit Link

Beispiel:

commit 7a1825abc69f1b40fd8eb3b501813f21e09bfb54 
Author: Filip Stefanov 
Date: Mon Nov 21 11:05:08 2016 +0200 

    TICKET-1 

    Test change 

    Change-Id: I7b4028e504de6c4a48fc34635d4b94ad038811a6 

sollte folgendermaßen aussehen:

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 ziemlich schlecht in Groovy regex weiß nicht, wie bisher Gruppierung oder Verschlüsse zu verwenden, so gut:

mystring.replaceAll(/TICKET-/, "http://localhost:8080/browse/TICKET-") 

HINWEIS: TICKET {int} und Change-Id {Hash} sind Variablen

+0

Versuchen Sie etwas wie dieses: mystring.replaceAll (/ (TICKET -.) /, "Url \ 1"). \ 1 ist die Gruppe, der Sie zugeordnet haben. – MYGz

+0

Versuchen Sie '.replaceAll (/ (? M)^([\ \ t + +) (TICKET- \ d +) (\ R {2}. * \ R {2} \ s +) (Änderungs-ID: \ s +) (\ S +) /, "$ 1 $2 $ 3 $ 4 $4$5"), hier ist die [Regex-Demo] (https://regex101.com/r/9vKjYE/1). –

Antwort

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>') 

Natürlich müssen Sie die dynamischen Teile entsprechend ersetzen. Derzeit ist es mindestens eine Ziffer nach der TICKET- und eine I und dann mindestens eine hexadezimale Ziffer nach der Change-ID:.

+0

Perfekt! Wie ich weiß Change IDs sind immer mit I in Gerrit vorangestellt. Was bedeutet \ p? –

+0

Es ist eine Zeichenklasse. Sehen Sie sich https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html für gültige an – Vampire