如何在C#中使用这种科学记数法正则表达式?

时间:2011-09-17 15:18:22

标签: c# regex

我正在使用这个正则表达式作为科学记数法并在C#中设置为REGEX类。

[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?

但它并没有真正发挥作用。

2 个答案:

答案 0 :(得分:5)

另一种可能更容易的选择:

double.TryParse(stringInput, out doubleOutput);

Double.TryParse默认处理科学记数法。

答案 1 :(得分:2)

什么不起作用?

我看到的一个潜在问题是你允许前导0,并且在小数中也是0。不确定你是否想要,或两者兼而有之。您还应该使小数部分可选,但取决于小数点的存在。这是我的建议:

[-+]?(0?|[1-9][0-9]*)(\.[0-9]*[1-9])?([eE][-+]?(0|[1-9][0-9]*))?

那将匹配:

0
0.1
0.01
1
1.1
1.01
10
10.1
10.01
1e1
1
1e0
1E1
1e10

不匹配:

.
01
1.0
1.10
1e01