从文本中提取带指数的双数值



我怎样才能从一个字符串中提取一个可能有指数的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;

最新更新