ОТВЕТ: (?:[01a][\\db]|2[0-9b]):[0-9c][\\dd]
Предполагалось, что регулярное выражение позволит строке (-ам) подтвердить значение true, если длина равна 5, а третий символ - двоеточие, в противном случае - false.
Используя этот тестер:
@Test
public void test09_hasValidLengthAndSeparator() {
final String[] VALID = {"01:30", "ab:cd", "29:99"};
for (int i = 0; i < VALID.length; i++) {
String s = VALID[i];
String error =
String.format("regextest.hasValidLengthAndSeparator(s) returned false for s = %s", s);
assertTrue(error, lab0.hasValidLengthAndSeparator(s));
}
final String[] NOT_VALID = {"", "1:30", "01,23", "29:9"};
for (int i = 0; i < NOT_VALID.length; i++) {
String s = NOT_VALID[i];
String error =
String.format("regextest.hasValidLengthAndSeparator(s) returned true for s = %s", s);
assertFalse(error, regextest.hasValidLengthAndSeparator(s));
}
}