C# 如何将字符串数据解析为string和long?

C# 如何将字符串数据解析为string和long?,c#,C#,我需要从这个“燃料箱”:0.220500007272得到0.220500007272。我自己也弄不清楚,也无法在网上找到任何信息 int c = b.Split(':').Length - 1; string resultString = Regex.Match(b.Split(':')[c], @"\d+").Value; try { Console.WriteLine(float.Parse(resultSt

我需要从这个“燃料箱”:0.220500007272得到0.220500007272。我自己也弄不清楚,也无法在网上找到任何信息

int c = b.Split(':').Length - 1;
string resultString = Regex.Match(b.Split(':')[c], @"\d+").Value;

try  
{                                   
    Console.WriteLine(float.Parse(resultString));
}
我需要从这个“fuel_con_ins”:1.220500007272得到1.220500007272,但是现在输出是1。

正则表达式模式不包括小数点,这就是为什么得到
1
(正则表达式在点处停止,所以这里只得到整数部分)

在这里你真的不需要正则表达式。。。只要分开就足够了:

var myFloat = float.Parse(myString.Split(':')[1])

作为一个附加说明(与问题无关),不要使用
try{}catch
块进行语法分析,除非您认为失败是一个实际的异常。。。对于正常使用,应该使用
float.TryParse()
而不是您还可以找到第一个字符,它是数字,并创建一个子字符串。
但是最简单的方法是使用分裂,如果你有“:”总是。

你也应该考虑使用,因为精度只有6-9个数字。 请记住,在使用double时,您可能必须使用

而不是

您可以试试

 Regex.Split(sentence, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "")

使用
Split
regex
,两者都不需要