浮点数/双精度数的正则表达式

时间:2019-02-22 15:19:38

标签: java regex floating-point

我一直在尝试从一个句子中检索一个字符串和2个十进制数字,但是小数部分效果不好。

我的句子采用以下格式:AMBIENT_CAVE 0.5 1 因此它将是word(有时包含_),然后是2个数字,它们可以是整数(1或0)或0到1之间的十进制。

我当前的正则表达式为:(\w+) ([+-]?([0-9]*[.])?[0-9]+) ([+-]?([0-9]*[.])?[0-9]+)有点用,但是使用上面第3组的句子示例为0.

结果:

enter image description here

我只想要AMBIENT_CAVE0.51
有人知道怎么做吗?

2 个答案:

答案 0 :(得分:3)

?:添加到您不想捕获的任何组中:

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

答案 1 :(得分:0)

您可以尝试这个。请提供更多可用字符串的示例,以优化表达式

  (\w+)\s([\d\.]+)\s([\d\.]+)