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

时间:2019-05-07 09:14:34

标签: c#

我需要从此“ fuel_con_ins”: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。

4 个答案:

答案 0 :(得分:3)

"\d+"的正则表达式模式不包含小数点,这就是为什么要获取1(正则表达式停在该点处,所以您只在此处得到整数部分)的原因。

您在这里实际上不需要正则表达式...只需拆分就可以了:

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

作为补充说明(与问题无关),请勿使用try {} catch块进行解析,除非您期望失败不是实际的例外...对于常规用法,应使用{{ 1}}

答案 1 :(得分:0)

您还可以找到第一个字符IsDigit并创建一个子字符串。 但是最简单的方法是如果始终使用':',则使用Split。

答案 2 :(得分:0)

您还应该考虑使用double,因为float的精度只有6到9位数字。 请记住,使用double时可能必须使用,而不是.

答案 3 :(得分:0)

您可以尝试

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