我正在从串口读取重量和尺寸破折号值。
这就是传入数据现在的样子:
-15.0cm-47.8cm-83.1cm: 0.115 kg
这是我的模式
@"(\d+\.\d+)"
但是,有时其中一个值也可能是负值,例如
--15.0cm-47.8cm--83.1cm: 0.115 kg.
我的问题是如何同时获得负值和正值?我对上述字符串的预期输出为[ "-15.0", "47.8", "-83.1", "0.115"]
。
答案 0 :(得分:1)
你可以使用一个lookbehind模式来确保有一个"破折号"在另一个之前(将被消耗,即添加到匹配值):
(?:(?<=-)-)?\d+\.\d+
针对--15.0cm-47.8cm--83.1cm: 0.115 kg
字符串{/ 3>}查看regex demo
此处,(?:(?<=-)-)?
是一个可选的非捕获组,匹配前面带有另一个-
的{{1}}。 -
匹配1位数字\d+\.\d+
,再次匹配1位或更多位数。
C#代码:
.