2

別の RPM のリストからバージョンを抽出しようとしています。以下に例を示します。

rpm = "abc-def-ghi-1.1.0-10.el6.x86_64"

この変数は、異なる文字列値を持つことができます。

rpm = "a-b-1.1.1-10.x86_64"

私の目標は、(以下のように)「一致」メソッドを使用して正規表現を作成することです-ただし、これは.el6の側面をカバーしていません。

rpm.match(/^#{rpmname_to_match}-(.*).x86_64$/).nil?
4

1 に答える 1

1

.el6 部分で何をしようとしているのかはわかりませんが、数値部分のみに一致するパターンが必要な場合は、これを試してください:

([0-9]+(?:(?:\.|-)(?:[0-9]+))*)

これは、1 つ以上の数字で始まる文字列にのみ一致し、ピリオドまたはハイフンの後に 1 つ以上の数字が続く任意の数のシーケンスを持つことができます。

したがって、最終的なステートメントは次のようになります。

rpm.match(/^#{rpmname_to_match}-([0-9]+(?:(?:\.|-)(?:[0-9]+))*)(.*)\.x86_64$/).nil?
于 2013-03-27T20:36:20.510 に答える