Первое, если условие должно быть истинным, если оно столкнется с этой последовательности, например, 1,2,3 ... 9 За исключением 0, и это позволяет только 1 цифру пройти. Второе, если верно, если у него есть эта последовательность 12, 22, 33 .. 99, за исключением 01,02 ... 09. Это позволяет пройти только две цифры. Но по какой -то причине первое условие допускает две или более цифры, и оно не переходит к следующему условию. < /P>
Pattern num1 = Pattern.compile("([1-9&&[^0]]){1}");
Matcher matchNum1 = num1.matcher(min);
Pattern num2 = Pattern.compile("[1-9[^0]]{2}");
Matcher matchNum2 = num2.matcher(min);
if (matchNum1.find()) {
System.out.println("contains number and no trailing zeroes " + min );
}
else if (matchNum2.find()) {
System.out.println("contains 2 numbers " + min);
}
else {
System.out.println("No match");
}
Подробнее здесь: https://stackoverflow.com/questions/246 ... conditions