0

特定のテキストから頻度を見つける必要があるプロジェクトに取り組んでいます。頻度を検出しようとする正規表現を作成しましたが、C# での処理方法とソフトウェアでの正確な使用方法に行き詰まっています。

私の正規表現は(\d*)(([,\.]?\s*((k|m)?hz)*)|(\s*((k|m)?hz)*))$

そして私はそこから価値を見出そうとしています

  • 23.2ヘルツ
  • 24,4Hz
  • 25,0 Hzsadf
  • 26Hz
  • 27Khz
  • 28hzzhzhzhdwe
  • 29
  • 30.4Hz
  • 31.8Hz
  • 4343.34.234 キロヘルツ
  • 65SD

さらなる説明:

  1. システムは米国とベルギーの文化で機能する必要があるため、23.2 (US) = 23,2 (Be)
  2. Digit を見つけようとし、その後に khz、mhz、hz またはスペースまたは , または .
  3. の場合、または . 次に、khz、mhz、hz が後に続く別の数字が必要です。

任意のヘルプが表示されます。

4

1 に答える 1

1

実行中の置換

(\d+(?:[.,]\d+)?)\s*([KkMm]?[Hh][Zz])

($1 $2)与えるために

(23,2 Hz)
(24,4 Hz)
(25,0 Hz)sadf
(26 Hz)
(27 Khz)
(28 hz)zhzhzhdhdwe
29
(30.4 Hz)
(31.8 Hz)
4343.(34.234 Khz)
65SD

望ましい動作に対する修正はありますか?

upd:これは否定的な後読みと単語の境界があります:

(?<![.,0-9])(\d+(?:[.,]\d+)?)\s*([KkMm]?[Hh][Zz])\b

(23,2 Hz)
(24,4 Hz)
25,0 Hzsadf
(26 Hz)
(27 Khz)
28hzzhzhzhdhdwe
29
(30.4 Hz)
(31.8 Hz)
4343.34.234 Khz
65SD
于 2012-05-31T10:45:23.033 に答える