java - 使用正则表达式删除尾随小数点和零

标签 java regex string

这是从字符串中删除尾随小数点和零的正确正则表达式吗?我无法让它工作。我错过了什么?

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

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

最佳答案

您需要转义 . ,因为它是 Regex 中的一个特殊字符,可以匹配任何字符。您还必须删除 ^ , 它锚定在数字的开头。

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

如果你想确保点前面有一个数字,你可以使用lookbehind,像这样:

str.replaceAll("(?<=^\\d+)\\.0*$", "");

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

关于java - 使用正则表达式删除尾随小数点和零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493273/

相关文章:

删除字符串中空格后的所有内容

javascript - 匹配除尖括号之外的单词边界

c++ - 编译返回字符串 & 的函数的问题

java - 找不到 Double 类型的 QueryString Binder 。尝试为此类型实现隐式 QueryStringBindable

java - 在其他字符串中查找字符串的任何符号的第一次出现

java - 无法安装Android开发工具包: Says Missing JDK

python - 如何使用python拆分字符串中的代数表达式?

sql - Postgresql 连接列并在列为 NULL 或为空字符串时跳过列

c++ - 检查2个字符串中是否有公共(public)子字符串c++

java - 指定通用文件路径以使用 jar 文件