这是对以下问题的扩展:How to separate numbers and characters with RegEx?
这是要检查的文本:
"min: 42.4ms"
"typ: 42,8ms"
"max: 43,2 ms"
"max 43,2 s"
"blublub_typ = n.a."
"bla_max = 2500,0 µs"
"jubdi,"dupp_min = 100,0 µs"
我想找到这个,分为三组:
(min) (42.4) (ms)
(typ) (42,8) (ms)
(max) (43,2) (ms)
(max) (43,2) (s)
(typ) (n.a.)
(max) (2500,0) (µs)
(min) (100,0) (µs)
由于我只对正确的RegEx模式感兴趣,所以这只是一种用方括号描述每个结果组的内容的方法。
这是我尝试的示例:
(min:|max|typ|max:)+\s?(\d+[.,]\d+|\d+)\s?(µs|ms|s)
问题:
但是我不知道如何忽略有趣部分前面的任何文本。此外,通过不提及第一组中的所有可能性,我不知道如何忽略任何相等的运算符或冒号,以及代替它们会出现什么情况。
有人可以帮助我吗? 提前非常感谢!
答案 0 :(得分:3)
在测试.Net regexes时,应使用RegexStorm,因为其行为与Regex101提供的风味并不完全相同。
我将使用此正则表达式(demo):
.*(?<type>min|max|typ)[ :=]+(?<value>\d*[,.]?\d*)\s?(?<unit>.*)"
使用命名捕获组允许更多地了解其功能。它为您提供以下匹配项:
答案 1 :(得分:0)