具有匹配的C#的正则表达式模式

时间:2012-05-31 10:37:38

标签: c# regex

我正在处理需要从给定文本中查找频率的项目。我写了一个试图检测频率的正则表达式,但是我对C#如何处理它以及我在软件中如何使用它感到困惑

我的常规表现是(\d*)(([,\.]?\s*((k|m)?hz)*)|(\s*((k|m)?hz)*))$

我正试图从

中找到价值
  • 23,2 Hz
  • 24,4Hz
  • 25,0 Hzsadf
  • 26 Hz
  • 27KHz的
  • 28hzzhzhzhdhdwe
  • 29
  • 30.4Hz
  • 31.8 Hz
  • 4343.34.234 Khz
  • 65SD

进一步说明:

  1. 系统需要为美国和比利时文化工作,因此,23.2(US)= 23,2(Be)
  2. 我试图找到一个数字,然后是khz,mhz,hz或空格或者,或者。
  3. 如果是,或。然后它应该有另一个数字,然后是khz,mhz,hz
  4. 任何帮助都是明确的。

1 个答案:

答案 0 :(得分: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