java - 如何在 Java 中使用 REGEX 解析字符串中的浮点值

标签 java android regex parsing

我想从中解析浮点值

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 旁边的点匹配,因为您将整数部分设为重复零次或多次,所以它不关心整数部分。

DEMO

关于java - 如何在 Java 中使用 REGEX 解析字符串中的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290463/

相关文章:

java - 使用jdbc模板批量更新插入或更新记录后如何获取自动生成的主键?

java - 根据 url 动态地将 .jsp 页面包含在另一个页面中

android - 进行发行版本构建时,AWS代码不存在,但对于调试版本则存在

r - 在 R 中循环替换字符串/因子变量/向量中的字符

javascript - 简单短语检测,按短语正则表达式分割

node.js - 如何使用javascript正则表达式和nodejs writeFile修改里面的HTML标签?

java - 有没有办法使用 Jackson ObjectMapper(没有自定义 @JsonCreator)将此 Json 解码到提供的 Java Dto?

java - iCal 同步可以在 Java 中使用吗?如何使用java连接ical服务器?

java - Java ArrayList<String> 的紧凑替代品

Android,无法使用 Retrofit 和 RxJava 2 构建应用程序