具有匹配项的 C# 的正则表达式模式
本文关键字:模式 正则表达式 | 更新日期: 2023-09-27 18:36:04
我正在从事需要从给定文本中找到频率的项目。我写了一个正则表达式来尝试检测频率,但是我坚持 C# 如何处理它以及如何在我的软件中使用它
我的常规检查是('d*)(([,'.]?'s*((k|m)?hz)*)|('s*((k|m)?hz)*))$
我试图从中寻找价值
- 23,2赫兹
- 24,4赫兹
- 25,0 赫萨德夫
- 26赫兹
- 27赫兹
- 28hzhdwe
- 29
- 30.4赫兹
- 31.8赫兹
- 4343.34.234 千赫
- 65标
进一步解释:
- 系统需要适用于美国和比利时文化,因此,23.2(美国)= 23,2(Be)
- 我尝试找到一个数字,后跟 khz,mhz,hz 或空格或 ,或 .
- 如果是 ,或 ,那么它应该有另一个数字,后跟 khz、mhz、hz
任何帮助都是值得的。
运行替换
('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