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