如何从具有更多字符的字符串中提取一些可能具有指数的double类型?
例如从
中提取56.8671311035e-06
“这是一个数字在56.8671311035e-06内的字符串,字符串在这里继续”
我想可以使用正则表达式完成,但我对它们的了解非常有限。
答案 0 :(得分:6)
是的,我会说正则表达式是你的朋友:
var match = Regex.Match(input, @"[0-9.]+e[-+][0-9]+");
或者您可以使用以下内容防止匹配多个小数点(最后一个将被视为“正确”小数点):
@"\b[0-9]+(.[0-9]+)e[-+][0-9]+\b"
编辑:这是一个更完整的版本,允许使用可选的指数,并且还允许小数点位于数字的 start :
@"[\d]*\.?[\d]+(e[-+][\d]+)?"
答案 1 :(得分:3)
你可以这样做:
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;