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?
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.