我想从中解析浮点值
CallCost:Rs.13.04 Duration:00:00:02 Bal:Rs.14.67 2016 mein Promotion
从上面的字符串我需要 13.04 和 14.67。我使用了以下正则表达式
Pattern p = Pattern.compile("\\d*\\.\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(">> " + m.group());
}
但是使用这个我得到“.13”、“.04”、“.14”、“.67” 提前致谢
最佳答案
使用\\d+
代替\\d*
Pattern p = Pattern.compile("\\d+\\.\\d+");
为什么?
因为如果您使用 \\d*\\.\\d+
,这应该与 Rs
旁边的点匹配,因为您将整数部分设为重复零次或多次,所以它不关心整数部分。
关于java - 如何在 Java 中使用 REGEX 解析字符串中的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290463/