扫描字符串中的数值c#

时间:2012-07-25 08:59:59

标签: c# string

我有一个字符串string rx; 此字符串具有以下类型的数据:" v = 123.111i = 10.123r = 1234 \ r \ n"

所以,我想要的: - 有3个浮点(或其他一些十进制变量)变量," v" I"和" r"。 -scan字符串...格式字符串如" v =%。3fi =%。3fr =%。3f \ r \ n"其中%.3f是值(3位小数)

2 个答案:

答案 0 :(得分:0)

var result = Regex.Matches(rx, @"\d+([,.]\d{1,3})?");

答案 1 :(得分:0)

使用RegexDouble.Parse

var inputString = @"v=123.111i=10.123r=1234\r\n";

foreach (Match match in Regex.Matches(inputString, @"\d+[.]?\d{3}"))
{
    double result = Double.Parse(match.Value);
}

解释

\d+          digits (0-9) 
             (1 or more times, matching the most amount possible)

[.]?         character of: '.' 
             (optional, matching the most amount possible)

\d{3}        digits (0-9) 
             (3 times)

我使用了Double.Parse。它将数字的string表示转换为等效的双精度浮点数。