使用Regex删除尾随小数点和零

Cod*_*ody 13 java regex string

这是从字符串中删除尾随小数和零的正确REGEX吗?我无法让它发挥作用.我错过了什么?

  1. 78.000 - > 78
  2. 78.008 - > 78.008

str.replaceAll("^.0*$", "");

Håv*_*ard 24

你需要转义.,因为它是Regex中与任何角色匹配的特殊字符.您还必须删除^数字开头的锚点.

str.replaceAll("\\.0*$", "");
Run Code Online (Sandbox Code Playgroud)

如果要确保点前面有数字,可以使用lookbehind,如下所示:

str.replaceAll("(?<=^\\d+)\\.0*$", "");
Run Code Online (Sandbox Code Playgroud)

lookbehind((?<=...)部分)不是匹配的一部分,因此它不会被替换,但它仍然必须与正则表达式的其余部分匹配才能匹配.


Jos*_*ber 5

不.用这个:

str.replaceAll("[.0]+$", "");
Run Code Online (Sandbox Code Playgroud)