这是从字符串中删除尾随小数点和零的正确正则表达式吗?我无法让它工作。我错过了什么?
- 78.000 -> 78
- 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/