使用正则表达式删除尾随小数点和零
这是从字符串中删除尾随小数和零的正确正则表达式吗?我无法让它工作。我错过了什么?
- 78.000 -> 78
- 78.008 -> 78.008
str.replaceAll("^.0*$", "");
这是从字符串中删除尾随小数和零的正确正则表达式吗?我无法让它工作。我错过了什么?
str.replaceAll("^.0*$", "");
您需要转义 ,因为它是正则表达式中与任何字符匹配的特殊字符。您还必须删除 ,它将锚定在数字的开头。.
^
str.replaceAll("\\.0*$", "");
如果要确保点前面有一个数字,可以使用 lookinde,如下所示:
str.replaceAll("(?<=^\\d+)\\.0*$", "");
lookbehind(部分)不是匹配的一部分,因此它不会被替换,但它仍然必须匹配正则表达式的其余部分才能匹配。(?<=...)
不。使用这个:
str.replaceAll("[.0]+$", "");