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?
Nope. Use this:
str.replaceAll("[.0]+$", "");
Get rid of the ^
, which matches the start of the string. You also need to escape .
, since it's a regex meta character that matches any character (except newlines):
str.replaceAll("\\.0*$", "");
Demo: http://ideone.com/RSJrO
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.