我正在使用这个正则表达式作为科学记数法并在C#中设置为REGEX类。
[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?
但它并没有真正发挥作用。
答案 0 :(得分:5)
答案 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