我需要从此“ 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。
答案 0 :(得分:3)
"\d+"
的正则表达式模式不包含小数点,这就是为什么要获取1
(正则表达式停在该点处,所以您只在此处得到整数部分)的原因。
您在这里实际上不需要正则表达式...只需拆分就可以了:
var myFloat = float.Parse(myString.Split(':')[1])
作为补充说明(与问题无关),请勿使用try {} catch
块进行解析,除非您期望失败不是实际的例外...对于常规用法,应使用{{ 1}}
答案 1 :(得分:0)
您还可以找到第一个字符IsDigit并创建一个子字符串。 但是最简单的方法是如果始终使用':',则使用Split。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以尝试
Regex.Split(sentence, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "")