/ Wzorzec wyrażenia regularnego / Construct nie pasuje do podanego nieprawidłowego wejścia w java - java, regex

Zbuduj wzór regex nie pasuje do podanego nieprawidłowego wejścia w java - java, regex

Buduję wzorzec wyrażeń regularnych dla identyfikatorów Androida. Identyfikatory Androida powinny mieć następujący format:

<8 character alphaNumeric>-<4 character alphaNumeric>-<4 character alphaNumeric>-<12 character alphaNumeric>

Przykładowy identyfikator Androida to,

5f302bf7-97ad-4c24-86f5-823f881d954e

Tak więc, aby dopasować powyższy format, mój wzorzec wyrażeń regularnych wygląda jak

"^([A-Fa-f0-9]{8}\" + "-[A-Fa-f0-9]{4}\" + "-[A-Fa-f0-9]{4}\"

Jeśli podałem nieprawidłowego Androida, identyfikuje się jako,

00000000-0000-0000-0000-000000000000

który również pasuje do powyższego wzorca wyrażenia regularnego.

Jak skonstruować wzorzec wyrażeń regularnych, który nie pasuje do powyższych nieprawidłowych identyfikatorów?

Odpowiedzi:

0 dla odpowiedzi № 1

Jeśli poprawnie zrozumiałem twoje pytanie, chcesz zweryfikować identyfikator, który ma następujące zasady

  • Powinien zezwalać tylko na znaki szesnastkowe (0-9, a-f i A-F)
  • Powinien mieć długość 28 znaków i być rozdzielony myślnikami (-) oraz struktury {8 znaków} - {4 znaki} - {4 znaki} - {12 znaków}

Regex: ^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$

Regex101 Demo

Mecze:

FF000000-0000-0000-0000ABCDEF0A
00000000-0000-0000-000000000000

Odrzuca:

00000000-0000-0000-0000-000000000000
00000000 0000 0000 0000 000000000000
00000000000000000000000000000000
00000000-0000-0000-00000000000G