我正在尝试编写正则表达式,以便它对以下所有可能性返回 true
1.2E3
12.22e32
+1.2
1,222
3,222
+3,222E23
3.2E2,333
如果逗号后有 3 位数字,则逗号有效。我有返回的正则表达式可能适用于 E/e 和小数点
[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?
我也有下面的正则表达式,它适用于逗号。
^(\d?\d?\d(,\d\d\d)*|\d+)(\.\d\d)?$
上面 regex 的第一件事,我不明白它是如何工作的。我知道 ^ 用于否定表达式。我理解其余部分,但为什么它必须否定它?
我已经尝试将两者结合起来完成我的工作。这是我的尝试(它们不适用于逗号)
"[-+]?[0-9]*(,[0-9][0-9][0-9])*\\.?[0-9]+([eE][-+]?[0-9]+)?"
"/[1-9](?:\\d{0,2})(?:,\\d{3})*(?:\\.\\d*[1-9]+([eE][-+]?[0-9]+)?)?|0?\\.\\d*[1-9]+([eE][-+]?[0-9]+)?|0/"
有人可以帮我解决这个问题。这似乎让我头疼