How to parse float values from string using REGEX

2019-06-18 04:50发布

I want to parse float values from

CallCost:Rs.13.04 Duration:00:00:02 Bal:Rs.14.67 2016 mein Promotion

From above string i need 13.04 and 14.67. I used following regex

  Pattern p = Pattern.compile("\\d*\\.\\d+");
  Matcher m = p.matcher(s);
  while (m.find()) {
  System.out.println(">> " + m.group());
            }

But using this i am getting ".13", ".04", ".14", ".67" Thanks in advance

1条回答
贪生不怕死
2楼-- · 2019-06-18 05:21

Use \\d+ instead of \\d*

 Pattern p = Pattern.compile("\\d+\\.\\d+");

Why?

Because if you use \\d*\\.\\d+, this should match from the dot exists next to Rs, since you made the integer part to repeat zero or more times., So it don't care about the integer part.

DEMO

查看更多
登录 后发表回答