Możliwy duplikat:
Jaki jest ostateczny kod pocztowy i wyrażenie regularne zip?
Potrzebuję Regex, który może spełnić wszystkie moje trzy warunki dotyczące kodu pocztowego. Na przykład-
- 12345
- 12345-6789
- 12345 1234,
Wszelkie wskazówki i sugestie będą mile widziane. Dzięki !
\d{5}([ \-]\d{4})?
.Odpowiedzi:
^
= Początek łańcucha.\d{5}
= Dopasuj 5 cyfr (dla warunku 1, 2, 3)(?:…)
= Grupowanie[-\s]
= Dopasuj spację (dla warunku 3) lub łącznik (dla warunku 2)\d{4}
= Dopasuj 4 cyfry (dla warunku 2, 3)…?
= Wzorzec przed nim jest opcjonalny (dla warunku 1)$
= Koniec ciągu.źródło
\s
dopasuje wszelkie białe znaki, w tym tabulatory i nowe linie.00544
to prawidłowy kod pocztowy;544
nie jest./(^\d{5}(?:[\s]?[-\s][\s]?\d{4})?$)/
Tylko dla wymienionych trzech warunków te wyrażenia mogą również działać:
Zobacz to demo, aby uzyskać dodatkowe wyjaśnienia.
Gdybyśmy mieli nieoczekiwane dodatkowe spacje między 5 a 4 cyframi lub ciągły 9-cyfrowy kod pocztowy, taki jak:
na przykład to wyrażenie byłoby opcją drugorzędną z mniejszymi ograniczeniami:
Zobacz to demo, aby uzyskać dodatkowe wyjaśnienia.
RegEx Circuit
jex.im wizualizuje wyrażenia regularne:
Test
źródło
Wiem, że może to być oczywiste dla większości ludzi, którzy często używają RegEx, ale w przypadku, gdy jacyś czytelnicy są nowicjuszami w RegEx, pomyślałem, że powinienem zwrócić uwagę na obserwację, która była pomocna w jednym z moich projektów.
W poprzedniej odpowiedzi od @kennytm:
Jeśli chcesz zezwolić na standardowe 5-cyfrowe i +4 kody pocztowe, jest to świetny przykład.
Aby dopasować tylko kody pocztowe w amerykańskim formacie „Zip + 4”, tak jak potrzebowałem (tylko warunki 2 i 3), po prostu usuń ostatni,
?
aby zawsze pasował do ostatniej grupy 5 znaków.Przydatne narzędzie, które polecam do majstrowania przy RegEx, znajduje się poniżej:
https://regexr.com/
Często używam tego narzędzia, gdy znajduję RegEx, które robi coś podobnego do tego, czego potrzebuję, ale może być nieco lepiej dostosowane. Ma również sprytne menu referencyjne RegEx i interfejs informacyjny, który informuje Cię o tym, jak Twoje zmiany wpływają na dopasowania dla wprowadzonego przykładowego tekstu.
Jeśli coś jest nie tak lub przeoczyłem ważną informację, popraw mnie.
źródło