/ / Regex zakres od 0 do 75, w tym dwie cyfry dziesiętne - regex, sprawdzanie poprawności

Zakres Regex między 0 a 75, w tym dwie cyfry dziesiętne - regex, validation

Jestem początkującym z regex, więc jeśli chodzi o to,Próbuję się tego nauczyć szukając podobnych problemów tutaj na stosie, ale po wielu próbach utknąłem i nie mogę znaleźć, gdzie jest problem w moim własnym regex.

Szukam kogoś, kto pomoże mi z moim już stworzonym regexem (podanym poniżej) lub poda mi lepszy pomysł / rozwiązanie.

Potrzebuję wyrażeń regularnych, które zawierają liczby w zakresie od 0 do 75, maksymalnie 4 cyfry, w tym 2 cyfry dziesiętne. Na przykład 75.00 lub 15.50, ale także pełna liczba bez cyfr dziesiętnych powinna być poprawną liczbą, taką jak: 75, 15 (nie zawarty 00).

Oto kilka liczb poniżej, które powinny być ważne i nieważne:

WAŻNE LICZBY:

0
0.1
0.10
5.15
5.52
15.50
74.99
75.00
75

NIEWAŻNE LICZBY:

00
-10
-0
-0.50
00.50
05.15
75.01
76.00
76
76.19

I tutaj jest moje już stworzone wyrażenie regularne, które powinno być oczywiście poprawione:

^(75(?:.00?)?|[1-7]?[0-5](?:.dd?)?|d(?:.d?d)?)$

Tutaj też jest próbny.

p.s. Szukałem podobnej odpowiedzi na to powiązane pytanie.

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz naprawić swój wzór w następujący sposób:

^(?:75(?:.00?)?|7[0-4](?:.dd?)?|[1-6]?d(?:.dd?)?)$

Zobacz regex demo

Detale:

  • ^(?: - początek łańcucha i początek grupy niezapisującej (tak, jak kotwice mogą być zastosowane do wszystkich alternatyw w grupie naprzemiennej)
  • 75(?:.00?)? - 75 następnie z opcjonalną sekwencją ., 0 i opcjonalnie 0
  • | - lub
  • 7[0-4](?:.dd?)? - 7 następnie z cyfrą od 0 do 4 a następnie z opcjonalną sekwencją ., cyfrę, a następnie opcjonalną cyfrę
  • | - lub
  • [1-6]?d(?:.dd?)? - opcjonalna cyfra z 1 do 6, a następnie dowolna cyfra, a następnie opcjonalna sekwencja ., cyfrę, a następnie opcjonalną cyfrę
  • )$ - koniec pierwszej grupy i końca łańcucha

1 dla odpowiedzi nr 2

Bardzo podobało mi się granie z tym narzędziem RegEx z twojego demo. Myślę, że musisz dodać więcej zajęć do RegEx:

^ (([1-6]? [0-9]) $ | ^ (7 [0-5]) $ | ^ (([1-6]? [0-9])). [0-9] [0-9]?) $ | ^ ((7 [0-4]). [0-9] [0-9]?) $ | ^ (75,00?) $

Pozdrowienia,