0

別のビルドからアーティファクトをコピーする Jenkins ビルドがあります。

説明セッタープラグインを使用して、アーティファクトを取得するビルド番号を抽出したいと考えています。

ログ ファイルには次の行が含まれます。

Copied 1 artifact from "Mybuild" build number 569

正規表現を使用して整数のみを抽出する必要があります569(任意の整数にすることができます)。また、1任意の int およびMybuild任意の文字列にすることができます (ただし、スペースは使用せず、1 語)。単語Copied, artifact, from, build, numberは一定で、常に表示されると想定できます

正規表現と一致させようとしましたが、うまくいきませんでした。いくつかの正規表現ジェネレーターの Web サイトも試してみましたが、うまくいきませんでした。

ありがとう。

4

1 に答える 1

2

あなたはおそらく使用することができます

Copied (\d+) artifact from "([^"]+)" build number (\d+)

次に、3 番目のグループを使用します (または、キャプチャされた最初の 2 つのトークンを囲む括弧を削除し、グループ番号 1 を使用します)。

\d任意の 10 進数を指し、末尾は、前のトークン (この場合は数字) を少なくとも 1 回、可能な限り頻繁に一致させようとする、+いわゆる量指定子です。[^"]二重引用符以外の任意の文字を含む文字クラスです。このようにして、引用符内のすべてを確実にキャッチできます (ここでは厳密には必要ありませんが、覚えておくとよいパターンです)。残りはすべて逐語的に一致しています。

クイック PowerShell テスト:

PS> 'Copied 1 artifact from "Mybuild" build number 569' -match 'Copied (\d+) artifact from "([^"]+)" build number (\d+)'
True
PS> $Matches

Name                           Value
----                           -----
3                              569
2                              Mybuild
1                              1
0                              Copied 1 artifact from "Mybuild" build number 569
于 2012-07-17T07:54:26.947 に答える