2017-09-22 5 views
-2

J'ai un fichier dans lequel j'ai stocké une sortie de commande git push. Il est sortie ressemble à ceci,Comment extraire l'URL d'une chaîne dans groovy

Counting objects: 3, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (3/3), 315 bytes | 315.00 KiB/s, done. 
Total 3 (delta 0), reused 0 (delta 0) 
To https://github.com/... 
    99d7..344 <branch> -> <branch> 
Branch newBranch set up to track remote branch newBranch from origin. 

J'emmagasinés cette sortie dans une variable et maintenant je veux faire la manipulation sur cette variable et chercher seulement URL comme,

https://githhub.com/... 

Il est un code de conduite Jenkins. Merci.

Répondre

0

Je suis sûr qu'il ya de meilleures façons en utilisant une API fournie par Jenkins ou Github, mais si c'est disponible, je vous suggère une expression régulière si vous connaissez le modèle demeurera conforme

String foo = ""; 
    String bar = "Counting objects: 3, done.\nDelta compression using up to 8 threads.\nCompressing objects: 100% (2/2), done.\nWriting objects: 100% (3/3), 315 bytes | 315.00 KiB/s, done.\nTotal 3 (delta 0), reused 0 (delta 0)\nTo https://github.com/...\n 99d7..344 <branch> -> <branch>\nBranch newBranch set up to track remote branch newBranch from origin."; 
    Pattern p = Pattern.compile("^to\\s+(.*$)",Pattern.CASE_INSENSITIVE|Pattern.MULTILINE); 
    Matcher m = p.matcher(bar); 
    if(m.find()) { 
     foo = m.group(1); 
     System.out.println(m.group(1)); 
    } 
    System.out.println(foo); 
    Output: https://github.com/...