Это регулярное выражение соответствует строкам, содержащим не более 5 цифр:
^(\D*\d){0,5}\D*$
И если вы хотите сопоставить строки, состоящие ровно из 5 цифр, выполните:
^(\D*\d){5}\D*$
Обратите внимание, что внутри литерала java.lang.String вам необходимо избежать обратной косой черты:
boolean match = "A2sad..3f,3,sdasad2..2".matches("(\\D*\\d){0,5}\\D*");
или
boolean match = "A2sad..3f,3,sdasad2..2".matches("(\\D*\\d){5}\\D*");
и вам не нужно добавлять «якоря» ^
и $
, поскольку matches(...)
в Java уже полностью соответствует строке.