正则表达式仅匹配浮点数

时间:2015-05-07 13:21:08

标签: regex

我需要做一个正则表达式来匹配浮点数,我得到的是以下内容:

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

但这场比赛也在下面 123123132, 1994年5月3日

我只需要将数字与小数点匹配

3 个答案:

答案 0 :(得分:3)

你的正则表达式几乎是正确的。

找到123123132,因为最后一部分是可选的。删除?解决了这个问题。

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

通过该调整,它仍然可以在.12/39/3239等字符串中找到匹配项,如果您不希望这种情况发生,请通过插入^和{{1}在整个字符串上插入强制匹配}:

$

答案 1 :(得分:0)

怎么样:

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

您可以看到它有效here

答案 2 :(得分:0)

这是一个regexp处理现有的 exponents

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

Regular expression visualization

Debuggex Demo

此外,您应该强制匹配孔串以避免在日期值内匹配。

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

顺便说一下,这里有一个关于使用正则表达式匹配浮点数的好教程:http://www.regular-expressions.info/floatingpoint.html