私はこの文字列を持っています。1.66 GHz2 Intel(R) Itanium(R) Processor 9320s (1.66 GHz, 16 MB)を取得する必要があります。これは、クロック速度が好きなものである可能性があります。1600 MHz1.33 GHz
ヘルプはありますか?
私は\b\([\d\s\w\.]*,\bあなたの提案をしてください
この正規表現を Pattern クラスで使用できます。
"\\d+(\\.\\d+)?\\s*.?Hz"
10 進数、オプションのスペース、オプションの乗数 (一致する必要があるだけなので、正規表現の任意の文字を使用します) を検索し、「Hz」で終了します。
str = '''2 Intel(R) Itanium(R) Processor 9320s (1.66 GHz, 16 MB)'''
extractedStr = str.replaceAll(/(.*)\((.*)Hz,(.*)/,'$2Hz')
println extractedStr
ここでは、入力文字列の部分を 3 つの部分に分割します。
(xxxx yHz、正規表現の最初の (.*) 部分になります。この最初の部分は $1 でアクセスできます。\(クロック速度の前の開き括弧です。\逃げることです(これによると、文字列からクロック速度を抽出するために必要なのは $2Hz だけです。
次のような正規表現を使用できます\s+\((.+?), .+?\)$。これにより、括弧の最後のセット内の値が抽出され、最初の値 (この場合は1.66 GHz) が正規表現グループにスローされ、後で値を抽出するためにアクセスできます。
その後、groovy で正規表現グループを照合してアクセスする方法の詳細について、このチュートリアルを確認できます。
これはクロック速度を見つけ、括弧を必要としません:
"(\\d+(?:\\.\\d+)?)\\s*.Hz"
グループ 1 には番号自体が含まれます