繁体   English   中英

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

[英]Regular Expression Pattern for C# with matches

我正在研究需要从给定文本中找到频率的项目。 我写了一个正则表达式来尝试检测频率,但是我对C#的处理方式以及在软件中使用频率的方式一无所知

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

我正在努力从中寻找价值

  • 23.2赫兹
  • 24,4赫兹
  • 25,0赫兹
  • 26赫兹
  • 27赫兹
  • 28hzzhzhzhdhdwe
  • 29
  • 30.4赫兹
  • 31.8赫兹
  • 4343.34.234赫兹
  • 65SD

进一步说明:

  1. 系统需要适用于美国和比利时文化,因此23.2(US)= 23,2(Be)
  2. 我尝试找到一个Digit,然后找到khz,mhz,hz或空格或或。
  3. 如果是,或者。 那么它应该有另一个数字,然后是khz,mhz,hz

任何帮助都适用。

运行替换

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

for ($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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM