0

私はこの文字列を持っています。1.66 GHz2 Intel(R) Itanium(R) Processor 9320s (1.66 GHz, 16 MB)を取得する必要があります。これは、クロック速度が好きなものである可能性があります。1600 MHz1.33 GHz

ヘルプはありますか?

私は\b\([\d\s\w\.]*,\bあなたの提案をしてください

4

4 に答える 4

1

この正規表現を Pattern クラスで使用できます。

"\\d+(\\.\\d+)?\\s*.?Hz"

10 進数、オプションのスペース、オプションの乗数 (一致する必要があるだけなので、正規表現の任意の文字を使用します) を検索し、「Hz」で終了します。

于 2012-07-23T06:46:44.033 に答える
1
str = '''2 Intel(R) Itanium(R) Processor 9320s (1.66 GHz, 16 MB)'''
extractedStr = str.replaceAll(/(.*)\((.*)Hz,(.*)/,'$2Hz')
println extractedStr

ここでは、入力文字列の部分を 3 つの部分に分割します。

  • 前にあるものはすべて(xxxx yHz、正規表現の最初の (.*) 部分になります。この最初の部分は $1 でアクセスできます。
  • \(クロック速度の前の開き括弧です。\逃げることです(
  • (. )Hz には、単位とコンマを含むクロック速度の値が含まれています。この (. ) の 2 番目の部分には、$2 でアクセスできます。
  • 3 番目 (.*) は、クロック速度の後の , に続くすべてのものです。3ドルでアクセスできます。

これによると、文字列からクロック速度を抽出するために必要なのは $2Hz だけです。

于 2012-07-23T06:45:42.737 に答える
0

次のような正規表現を使用できます\s+\((.+?), .+?\)$。これにより、括弧の最後のセット内の値が抽出され、最初の値 (この場合は1.66 GHz) が正規表現グループにスローされ、後で値を抽出するためにアクセスできます。

その後、groovy で正規表現グループを照合してアクセスする方法の詳細について、このチュートリアルを確認できます。

于 2012-07-23T06:48:04.017 に答える
0

これはクロック速度を見つけ、括弧を必要としません:

"(\\d+(?:\\.\\d+)?)\\s*.Hz"

グループ 1 には番号自体が含まれます

于 2012-07-23T06:55:28.877 に答える