Проверьте формат кода в Java

Я работаю над проектом для школы, в котором мы должны проверить формат кода. Формат состоит из 3 заглавных букв, за которыми следуют 3 цифры, где хотя бы 1 цифра не равна 0. Таким образом, ABC001 действителен. ABC000 недействителен.

Я застрял в том, как я напишу формат для проверки цифр, так что 000 будет недействительным, а 001-999 - действительным. Ниже приведен код, в настоящее время он написан так, что 000 является действительным.

public static boolean validateInvoiceCode(String invoiceCode)
{
      return invoiceCode.matches("[A-Z][A-Z][A-Z][0-9][0-9][0-9]");
}

1 ответ

Решение

Добавить отрицательный взгляд назад (?<!...) что черные списки 000:

[A-Z][A-Z][A-Z][0-9][0-9][0-9](?<!000)

Regex101 Demo

Вы также можете улучшить свое регулярное выражение с помощью квантификаторов, и \d для цифр:

[A-Z]{3}\\d{3}(?<!000)

Regex101 Demo

Другие вопросы по тегам