Remove trailing decimal point & zeroes with Regex

前端 未结 3 1155
猫巷女王i
猫巷女王i 2021-02-05 13:22

Is this the proper REGEX to remove trailing decimal and zeroes from a string? I can\'t get it to work. What am I missing?

  1. 78.000 -> 78
  2. 78.008 -> 78.008
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-02-05 14:16

    You need to escape the ., as it is a special character in Regex that matches any character. You also have to remove the ^, which anchors at the beginning of the number.

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

    You can use a lookbehind if you want to make sure there is a number in front of the dot, like this:

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

    The lookbehind (the (?<=...) part) is not a part of the match, so it will not be replaced, but it still has to match for the rest of the regex to match.

提交回复
热议问题