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

本文关键字:指数 文本 提取 | 更新日期: 2023-09-27 18:01:23

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