这是从字符串中删除尾随小数和零的正确REGEX吗?我无法让它发挥作用。我错过了什么?
str.replaceAll("^.0*$", "");
答案 0 :(得分:24)
你需要转义.
,因为它是Regex中与任何角色匹配的特殊字符。您还必须删除^
,它位于数字开头的锚点。
str.replaceAll("\\.0*$", "");
如果你想确保点前面有一个数字,可以使用lookbehind,如下所示:
str.replaceAll("(?<=^\\d+)\\.0*$", "");
lookbehind((?<=...)
部分)不是匹配的一部分,所以它不会被替换,但它仍然必须匹配正则表达式的其余部分才能匹配。
答案 1 :(得分:5)
不。使用此:
str.replaceAll("[.0]+$", "");
答案 2 :(得分:4)
删除匹配字符串开头的^
。你还需要转义.
,因为它是一个匹配任何字符(新行除外)的正则表达式元字符:
str.replaceAll("\\.0*$", "");