2017-05-24 12 views
0

に「キー値」のペアとストアが、私は次の操作を実行するためにJenkinsfileためGROOVYスクリプトを書いています:なGroovy:フィルタリングする正規表現:配列

ステップ-1:入力ファイルinfo_file.txtをお読みください。例えば接尾辞-A0,-B1などを取り除いた後、アレイ内のCHIP_DETAILSを保管してください。..

:infoファイルの内容は下の通りです:

sh> cat info_file.txt 
CHIP_DETAILS:1234-A0;1456-B1;2456-B0;3436-D0;4467-C0 

ステップ-2

Integer[] testArray = ["1234", "1456", "2456" , "3436" , "4467"] 

ステップ-3 :配列の要素を順次出力する。たとえば:

testArray.each { 
println "chip num is ${it}" 
} 

私はCHIP_DETAILS「キー」が入力ファイル内に存在し、それが働いているかどうかをテストするために小さなコードを書かれています。 しかし、私は、接尾辞(-A0,-B1など)を削除し、対応する値を配列に格納する正規表現を書くのは難しいと思っています。助けを事前に

stage('Read_Params') 
     { 
      steps 
      { 
       script 
       { 
        println ("Let's validate and see whether the "Key:Value" is present in the info_file.txt\n"); 
        if (new File("$JobPath/Inputparams.txt").text?.contains("CHIPS_DETAILS")) 
        { 
         println ("INFO: "Key:Value" is present in the info_file.txt \n"); 
         >>>>> proceed with Step-1, Step-2 and Step-3... <<<<< 
        } 
        else 
        { 
         println ("WARN: "Key:Value" is NOT present in the info_file.txt \n"); 
         exit 0; 
        } 
       } 
      } 
     } 

ありがとう: コードは下のようです!

答えて

1

は、次のような何かを試みることができる:正規表現は、あなたが捕獲しようとしている数は、行の先頭で、または接頭辞のいずれかである保証し

def chipDetails = 'CHIP_DETAILS:1234-A0;1456-B1;2456-B0;3436-D0;4467-C0' 

def testArray = (chipDetails =~ /(?<=^|[:;])\d*(?=[-])/)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 
assert​ '1234' == testArray[0] 
assert '1456' == testArray[1] 
assert '2456' == testArray[2] 
assert '3436' == testArray[3] 
assert '4467' == testArray[4]​ 

を:や;末尾に -

区切り文字の間に任意の桁数を入れることができます。以下のような結果を超える

反復:

testArray.each{ 
    println it 
}​ 
+0

おかげ@マイクは、この正規表現はいいですね。 'assert'を使って一つずつ書くのではなく、' values'を直接配列に書く方法がありますか?その理由は、 'CHIP_DETAILS'のエントリの数は、私のケースではパイプラインをトリガするときにユーザによって提供された入力パラメータから動的になるためです。つまり、1234-A0というエントリが1つしかない場合や、ユーザーの入力に応じて10以上のエントリがある場合があります。 – Yash

+0

@Yashアサーションは、結果が期待どおりであることを示すためだけにあり、ソリューションに必須ではなく、すべてが正規表現とtestArrayへの代入であるため、配列を反復する方法を示す質問が更新されています –

+0

ありがとう@Mike !! – Yash

関連する問題