常规语言/表达式以指数表示法捕获所有数字

时间:2016-10-13 01:23:11

标签: regex regular-language

我正在尝试编写一个正则表达式,以指数表示法捕获所有数字。符号由一个数字后跟一个句点(。),后跟一个数字,后跟E或e,后跟可能的 - ,后跟一个数字。顺便说一句,我不能写出来(1-9)......我必须写出来(1,2,3,4,5,6,7,8,9)

例如

3.022E24 or 3.022e24 = 3.022 x 10^24
1.4e-22 = 1.4 x 10^-22

我认为是什么。

(0+(1+2+3+4+5+6+7+8+9)*).(0+1+2+3+4+5+6+7+8+9)*(E+e)(-+ε)(0+(1+2+3+4+5+6+7+8+9)*)

这是对的吗?我正在努力思考如何解决这个问题...我会很感激的任何提示或指示。

1 个答案:

答案 0 :(得分:0)

 (0+(1+2+3+4+5+6+7+8+9)*) 

为您提供零或不包含任何零的数字。可能你想要:

 (0+((1+2+3+4+5+6+7+8+9)(0+1+2+3+4+5+6+7+8+9)*))

如果您不想在逗号后面跟踪零,请使用:

 (0+((0+1+2+3+4+5+6+7+8+9)*(1+2+3+4+5+6+7+8+9)))

这允许在逗号后面加零。对于没有像2.0e3这样的小数部分的数字,这似乎是你想要的解决方案。