私はこの文字列を持っています。1.66 GHz2 Intel(R) Itanium(R) Processor 9320s (1.66 GHz, 16 MB)
を取得する必要があります。これは、クロック速度が好きなものである可能性があります。1600 MHz
1.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 には番号自体が含まれます