метод match (regex) совпадает со всей строкой.
Вы можете изменить шаблон для соответствия всей строке.
if (cadena.matches(".*[0-9],[0-9].*")){
// Do Something
}
Или вы можете использовать find, чтобы найти числономер запятой в любом месте строки:
Pattern pattern = Pattern.compile("[0-9],[0-9]");
if (pattern.matcher(cadena).find()){
// Do Something
}
Если вы действительно хотите использовать числа, которые соответствуют обеим сторонам запятой в вашем блоке if, вы можете использовать () для захвата групп и ссылки на них с помощью Matcher.
String cadena = "2,2345";
Pattern pattern2 = Pattern.compile("([0-9]+),([0-9]+)");
Matcher matcher = pattern2.matcher(cadena);
if (matcher.find()){
System.out.println("Found " + matcher.group(1) + " - " + matcher.group(2));
}
// Prints: Found 2 - 2345