使用匹配器和模式从字符串中提取浮点数

时间:2014-08-07 14:17:30

标签: java regex matcher

假设

String str="123 abc 123.4 256";
Matcher m = Pattern.compile("\\d+").matcher(scan);
while (m.find()) 
{
    System.out.println(m.group(0));
}

通过使用此代码我得到输出:

123
123
4
256

但是在输出中我希望它为123,123.4,256。我应该使用什么模式来获得理想的结果,或者使用匹配器和模式的其他解决方案是什么。

4 个答案:

答案 0 :(得分:4)

你的正则表达式只查找数字(加号只表示至少一个)。如果需要小数,则需要将点包含在正确的位置

(\\d+\\.\\d+)

这将给你至少一个数字,后跟一个点,后跟至少一个数字。

答案 1 :(得分:2)

您可以使用以下模式匹配123.4:\ d + \。\ d *

 String str="123 abc 123.4 256";
      Matcher m = Pattern.compile("\\d+\\.\\d*").matcher(str);
      while (m.find()) 
      {
          System.out.println(m.group(0));
        }

答案 2 :(得分:0)

请改为尝试:

    Matcher m = Pattern.compile("\\d+(\\.\\d+)?").matcher(str);

答案 3 :(得分:0)

查看此链接 http://www.regular-expressions.info/floatingpoint.html 有几个很好的例子。