Let me notice you changed the mask from ###.### to ##.##
You can express that change inside the {0,here} boundaries
//Accept Decimals
String regexDecimal = "\\d{0,2}\\.\\d{1,2}";
//Accept Integers
String regexInteger = "\\d+";
System.out.println("11.".matches(regexDecimal + "|" + regexInteger));
Let me know if this works for you.
By the way, let me recommend you the book:
Java Regular Expressions Taming the java.util.regex package If you need to parse a lot of numeric expressions, I recommend you the library:
Java Math Expression Parser (JEP) Which is free