我怎样才能从一个字符串中提取一个可能有指数的double类型的数字?
例如从
中提取56.8671311035e-06
"这是一个包含数字的字符串,在56.8671311035e-06中,字符串在这里继续"
我想这可以用正则表达式来完成,但是我对它们的了解非常有限。
是的,我想说正则表达式是你的朋友:
var match = Regex.Match(input, @"[0-9.]+e[-+][0-9]+");
或者您可以避免使用以下内容匹配多个小数点(最后一个小数点将被视为"正确的"小数点):
@"b[0-9]+(.[0-9]+)e[-+][0-9]+b"
编辑:这里是一个更完整的,允许可选的指数,也允许小数点在数字的开始:
@"[d]*.?[d]+(e[-+][d]+)?"
你可以这样做:
string test = "this is a string with a number inside 56.8671311035e-06 and the string continues here";
string expoNum = Regex.Match(test,@"[d.]+e[-+]?d+").Value;